TableRowSorter导致行号混乱

问题描述 投票:0回答:1

对于我的程序来说,分配给变量的行号与其位置一致是很重要的,但是在排序后这会搞砸。使用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,因为这是第一行放入的行。我希望这很清楚;提前感谢您的帮助。

java swing jtable defaulttablemodel tablerowsorter
1个回答
0
投票

原来使用model.getValueAt()是问题所在。切换到简单的Table.getValueAt()解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.