📄 onlineclienttablemodel.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 + -