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

📄 onlineclienttablemodel.java

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

class OnlineClientTableModel extends DefaultTableModel{ //table model to show online clients
	private static int onlineClientNum;
    private static String[] columnNames ;
    private static Object[][] data ;
    static Object[] longValues; //compare criteria	
    
    static void initiate(int n,LinkedList<Long> clientIDList){
    	ClientData cd=null;
    	onlineClientNum=n;
    	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"};
    	
    	data=new Object[onlineClientNum][9];
    	for(int i=0;i<onlineClientNum;i++){
			try{  //get client by id
				cd=Server.getServerDatabase().findClient(clientIDList.get(i));
				//System.out.println("!!"+clientIDList.get(i)); //**test
			}catch(IndexOutOfBoundsException e){ //may be the id of a client in the online-list has been deled
				continue;
			}
			
			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 int getColumnCount() {
        return columnNames.length;
    }

    public int getRowCount() {
        return data.length;
    }

    public String getColumnName(int col) {
        return columnNames[col];
    }

    public Object getValueAt(int row, int col) {
        return data[row][col];
    }
    
    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }
    
    static void setTableWidth(JTable table){  //adjust table width appropriately
		OnlineClientTableModel model = (OnlineClientTableModel)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 + -