我已經創建了自己的類來擴展AbstractTableModel。這個想法是能夠存儲隱藏的「id」列。以下代碼適用於此目的:使用自定義AbstractTableModel排序
public class GuiTableModel extends AbstractTableModel {
List<Object[]> rowlist = new ArrayList<Object[]>();
List<String> colNames = new ArrayList<String>();
public void addRow(Object[] data) {
rowlist.add(data);
}
public void addColumn(String name) {
colNames.add(name);
}
public int getColumnCount() {
return colNames.size();
}
public int getRowCount() {
return rowlist.size();
}
public Object getValueAt(int row, int col) {
return rowlist.get(row)[col];
}
@Override
public String getColumnName(int column) {
return colNames.get(column);
}
@Override
public boolean isCellEditable(int rowIndex, int mColIndex) {
return false;
}
正如您在上面看到的,它的一個非常簡單的實現。但問題是,當某人通過單擊JTable中的列標題按列排序時,AbstractTableModel中的列表不會被更新。我需要列表與視覺佈局同步。
關於如何做到這一點的任何想法?
非常感謝
在我看來
謝謝。我結束了使用字符串rt =(String)model.getValueAt(table.convertRowIndexToModel(table.getSelectedRow())但也感謝提示,不需要使用我自己的模型! – jtnire 2010-11-06 18:30:33