我最近在做一个Java swing的项目,要用到时时刷新JTable,刷新是做出来了,但是耍了几次就开始窗体就闪了一下,不知道是哪里的错误,请各位给看看
[align=left][align=center]TableData jtData =new TableData();  自定义的表格
ModelData model = new ModelData();  继承自AbstractTableModel
model.query();      这是我在model中写的一个加载数据的方法
jtData.setModel(model);
jtData.getColumnModel().getColumn(0).setPreferredWidth(40);
jtData.getColumnModel().getColumn(1).setPreferredWidth(100);
jtData.getColumnModel().getColumn(2).setPreferredWidth(180);
jtData.getColumnModel().getColumn(3).setPreferredWidth(200);
jspData.setViewportView(jtData);[/align]这是model类
public class ModelData extends AbstractTableModel {
String[] columnsName = { "端口", "未知", "时间", "数据" };
String[][] rowData=null; // 无参构造函数
public ModelData() {} // 初始化查询所有数据
public void query() {
Long time=System.currentTimeMillis();
ArrayList<Data> data = null;
try {
data = DAOFactory.getIDataDAOInstance().findAll();
} catch (Exception e) {
e.printStackTrace();
}
rowData=new String[data.size()][4];
for(int i=0;i<data.size();i++){
Data d=data.get(i);
rowData[i][0]=d.getPort();
rowData[i][1]=d.getUnknow();
rowData[i][2]=d.getTime();
rowData[i][3]=d.getData();
}
Long time2=System.currentTimeMillis();
System.out.println("time is"+(time2-time));
} // 共有多少行
public int getColumnCount() {
return this.columnsName.length;
} // 共有多少行
public int getRowCount() {
return this.rowData.length;
} // 得到某行某列的数据
public Object getValueAt(int row, int column) {
return this.rowData[row][column];
} // 获取标题
public String getColumnName(int column) {
return this.columnsName[column];
} //是否编辑
public boolean isCellEditable(int arg0, int arg1) {
return false;
}
// 得到指定列的名称
public Class<?> getColumnClass(int columnIndex) {
return this.getValueAt(0, columnIndex).getClass();
} public void setValueAt(String aValue, int rowIndex, int columnIndex) {
this.rowData[rowIndex][columnIndex]=aValue;
}}
我使用一个线程来刷新数据
jtData = new TableData();
ModelData model = new ModelData();
model.query();
jtData.setModel(model);
jtData.getColumn("端口").setPreferredWidth(40);
jtData.getColumn("未知").setPreferredWidth(100);
jtData.getColumn("时间").setPreferredWidth(180);
jtData.getColumn("数据").setPreferredWidth(200);
jspData.setViewportView(jtData);
jpTab1.add(jspData);求助各位给看一下