⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 allclienttablemodel.java

📁 JAVA实现的聊天工具,可以容纳最多10个用户 1.本系统需要JDK1.5 或更高版本的支持。 2.serverDatabase为服务器端的数据文件. 若使用现有数据,可用帐号:1, 密码
💻 JAVA
字号:
//table model to show all client
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
//import javax.swing.event.*;
import java.util.*;

public class AllClientTableModel extends DefaultTableModel /*implements ListSelectionListener*/{
	//private static JTable Table;
	private static int clientNum;
	private  static String[] columnNames;
	private static Object[][] data;
	static Object[] longValues; //compare criteria	
	
	static void initiate(int n){
		//long clientID;
		//LinkedList<Long> friendList;
		clientNum=n;
		ClientData cd;
		data=new Object[clientNum][9];
		columnNames =new String[]{"ID","Name","Online","IP","Age","Sex",
				"From","E-mail",/**/"Registered Date"};
		
		longValues=new Object[]{new Long(1000),"mycoy zwz",Boolean.FALSE,"196.128.101.1000",
				"200","Female","American","zw_z7@hotmail.com",/**/(new Date()).toString()+"11"};
		
		for(int i=0;i<clientNum;i++){  //get client by index in list
			cd=Server.getServerDatabase().getClient(i);
			//clientID=cd.getID();
			//end of the client-list has been reached, maybe a client has been deled after getting clientsNum
			if(cd==null)
				break;
			int j=0;  //add info to data[][]
			data[i][j++]=new Long(cd.getID());
			data[i][j++]=cd.getName();
			data[i][j++]=new Boolean(cd.isOnline());
			data[i][j++]=cd.getIP();
			data[i][j++]=cd.getAge();
			data[i][j++]=cd.getSex();
			data[i][j++]=cd.getFrom();
			data[i][j++]=cd.getMail();
			data[i][j++]=cd.getRegistryDate().toString();			
		}
	}
	
	/*public void valueChanged(ListSelectionEvent lse){
		int firstRow=lse.getFirstIndex();
		//System.out.println("first row:"+Table.getSelectedRow());
		int lastRow=lse.getLastIndex();
		//long tempID=((Long)table.getValueAt(firstRow,0)).longValue();
		//idField.setText(table.getValueAt(firstRow,0).toString());
	}*/
	
	boolean hasClient(){  //return true if has any registered client
		return !(clientNum==0);
	}
	
	public int getRowCount() {
		//return 4;
		//System.out.println(data);
        return data.length;
    }
	
	public int getColumnCount() {
		//return 10;
        return columnNames.length;
    }
	
	/*without the method,the header of the table will be A B C.....*/
	public String getColumnName(int col) {
        return columnNames[col];
    }
	
	public Object getValueAt(int row, int col) {
        return data[row][col];
    }
	
	/*
     * JTable uses this method to determine the default renderer/
     * editor for each cell.  If we didn't implement this method,
     * then the last column would contain text ("true"/"false"),
     * rather than a check box.
     */
	public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }
	
	static void setTableWidth(JTable table){  //adjust table width appropriately
		//Table=table;
		AllClientTableModel model = (AllClientTableModel)table.getModel();
        TableColumn column = null;
        Component comp = null;
        int headerWidth = 0;
        int cellWidth = 0;
        Object[] longValues = model.longValues;
        TableCellRenderer headerRenderer =
            table.getTableHeader().getDefaultRenderer();

        for (int i = 0; i < 9; i++) {
            column = table.getColumnModel().getColumn(i);
            /*column.sizeWidthToFit();*/
            comp = headerRenderer.getTableCellRendererComponent(
                                 null, column.getHeaderValue(),
                                 false, false, 0, 0);
            headerWidth = comp.getPreferredSize().width;

            comp = table.getDefaultRenderer(model.getColumnClass(i)).
                             getTableCellRendererComponent(
                                 table, longValues[i],
                                 false, false, 0, i);
            cellWidth = comp.getPreferredSize().width; 

            column.setPreferredWidth(Math.max(headerWidth, cellWidth));
        }
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -