clientfriendtablemodel.java
来自「JAVA实现的聊天工具,可以容纳最多10个用户 1.本系统需要JDK1.5 」· Java 代码 · 共 94 行
JAVA
94 行
//table model to show a client friends info
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import java.util.*;
public class ClientFriendTableModel extends DefaultTableModel{
private static int friendNum,clientID;
private static String[] columnNames ;
private static Object[][] data ;
static Object[] longValues; //compare criteria
static boolean initiate(int n,int id,LinkedList<Long> friendIDList){
boolean initiated=false;
friendNum=n;
clientID=id;
ClientData friend=null;
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()+"1"};
data=new Object[friendNum][9];
for(int i=0;i<friendNum;i++){
try{
friend=Server.getServerDatabase().findClient(friendIDList.get(i));
}catch(IndexOutOfBoundsException e){ //may be the id of a client in the online-list has been deled
continue;
}
if(friend==null) //friend in list but it has been deled by adm
continue;
int j=0; //add info to data[][]
data[i][j++]=new Long(friend.getID());
data[i][j++]=friend.getName();
data[i][j++]=new Boolean(friend.isOnline());
data[i][j++]=friend.getIP();
data[i][j++]=friend.getAge();
data[i][j++]=friend.getSex();
data[i][j++]=friend.getFrom();
data[i][j++]=friend.getMail();
data[i][j++]=friend.getRegistryDate().toString();
initiated=true;
}
return initiated; ////friend in list but it has been deled by adm
}
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
ClientFriendTableModel model = (ClientFriendTableModel)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 + =
减小字号Ctrl + -
显示快捷键?