我有一个 JTable
(扩展)和一个 TableModel
的实现,其中我有方法 ...
moveEntryUp(int rowIdx)
moveEntryDown(int rowIdx)
... 在表模型实现中。我已经验证这些工作正常。
但是,我在将表模型中所做的更改传播到实际的 JTable
时遇到了问题。在此表中,我只允许选择单行,并且有单独的Up 和Down 按钮。选择一行后,我需要能够上下移动该行,并保留选择。
例如
如果我的行是 [A, B, C(selected)]
,然后我按下向上按钮,
我应该得到 [A, C(selected), B]
。
到目前为止,我尝试过的各种方法要么无法刷新 JTable 中的值,要么丢失选择。
注意:
我对使用需要显式调用 repaint()
的解决方案犹豫不决。
假设 JTable
中的所有单元格都不可编辑。
最佳答案
回答自己的问题:
int row = mTable.getSelectedRow();
mTableModel.moveEntryUp(row);
mTable.getSelectionModel().setSelectionInterval(row -1, row -1);
mTable
是 JTable,mTableModel
是我的表模型实现,相当于 mTable.getModel()
(和类型转换).
在提问之前应该多看看!
关于Java:JTable 重新排序行并刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2204400/