对于我的程序来说,分配给变量的行号与它的位置保持一致是很重要的,但在排序之后,这就变得混乱了。使用DefaultTableModel,这是我用来排序的东西:
int rownumber = Table.getRowCount();
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(Table.getModel());
Table.setRowSorter(sorter);
List<RowSorter.SortKey> sortKeys = new ArrayList<>(rownumber);
sortKeys.add(new RowSorter.SortKey(1, SortOrder.ASCENDING));
sorter.setSortKeys(sortKeys);排序是在按下JButton之后完成的,并且在JTable上按照预期的视觉效果工作,但问题是,实际上,第一个条目将始终位于(1,1)位置,因为我的JTable有两列。例如,如果我的表是这样的:
|----|----|
|Col1|Col2|
|----|----|
| 1 | 2 |
|----|----|
| 3 | 4 |
|----|----|即使第一行的值是( 1,2 ),从model.getValueAt(0,1)中读取也会返回值4,因为这是最先放入的行。我希望这一点是清楚的;提前感谢您的帮助。
发布于 2019-03-05 08:48:32
结果发现使用model.getValueAt()才是问题所在。切换到简单的Table.getValueAt()解决了这个问题。
https://stackoverflow.com/questions/54992445
复制相似问题