[英]JTable Refresh using TableModel
我一直在嘗試刷新我的Jtable,但我認為我在某種程度上與tableModel和Table Model偵聽器概念混淆了。
所以我通過在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);
TasksTableModel model = new TasksTableModel(tc); tcTable = new JTable(model);
因此,對我的collect []對象進行了更新,之后我需要刷新表。到目前為止,我一直在將表設置為新的TaskTableModel,以刷新在現有表上失去任何排序的位置。我該怎么做所以。 請提供示例代碼,以使我更好地理解。
重構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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.