我已经创建了自己的类来扩展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