我一直在尝试刷新我的Jtable,但我想我不知何故把tableModel和Table Model listener概念搞混了。
因此,我通过在TableModel类中传递数据结构来构造一个表
public class TasksTableModel extends AbstractTableModel {
int[] collect;
String[] columnNames;
Object[][] data;
public TasksTableModel(int[] collect) {
this.collect=collect;
columnNames=new String[]{"Job","Task"};
for(int i=0;i<10;i++) {
data[i][0]=collect[0];
data[i][1]=collect[1];
}
}
}
public int getRowCount() {
return data.length;
}
public int getColumnCount() {
return columnNames.length;
}
public Object getValueAt(int rowIndex, int columnIndex) {
return data[rowIndex][columnIndex];
}
public String getColumnName(int col) {
return columnNames[col];
}
}我的表是在类似以下TasksTableModel model = new TasksTableModel(tc); tcTable = new JTable(model);的另一个类中创建的
因此,我的collect[]对象发生了更新,在此之后我需要刷新table.So。我一直在将表设置为一个新的TaskTableModel,以刷新在现有table.How上丢失任何排序的位置。请提供一个示例代码,以便我更好地理解。
发布于 2011-08-10 11:43:50
重构TasksTableModel以将设置模型与构造函数分开,例如:
public TasksTableModel(int[] collect) {
columnNames=new String[]{"Job","Task"};
setModel(collect);
}
public void setModel(int[] collect) {
this.collect=collect;
for(int i=0;i<10;i++) {
data[i][0]=collect[0];
data[i][1]=collect[1];
}
}然后,当您想要更新collect[]对象时,请执行以下操作:
model.setModel(collect);
model.fireTableDataChanged();https://stackoverflow.com/questions/6983597
复制相似问题