为什么以下代码会导致java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
?
JTable oTable = new JTable();
for (int row = 0; row < table.getRowCount(); row++) {
for (int column = 0; column < table.getColumnCount(); column++) {
oTable.setValueAt(table.getValueAt(row, column), row, column);
}
}
表已使用 SortKeys 进行排序。SortKeys 工作后,GUI 中的视图会更新,但基础数据(模型)没有更改。我需要更改基础模型或使用视图中的数据创建一个新表。
DefaultTableModel model = (DefaultTableModel) table.getModel();
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
table.setRowSorter(sorter);
List<RowSorter.SortKey> sortKeys = new ArrayList<RowSorter.SortKey>();
sortKeys.add(new RowSorter.SortKey(model.findColumn("col title"), SortOrder.DESCENDING));
sortKeys.add(new RowSorter.SortKey(model.findColumn("col title 2"), SortOrder.DESCENDING));
sortKeys.add(new RowSorter.SortKey(model.findColumn("another col title"), SortOrder.DESCENDING));
sorter.setSortKeys(sortKeys); //this should trigger a .sort()
我不知道为什么模型没有更新,但它没有。