我有JTable
(扩展)和TableModel
的实现,其中我有方法......
moveEntryUp(int rowIdx)
moveEntryDown(int rowIdx)
...在表模型实现中。我已经证实这些工作正常。
但是,我在将表模型中所做的更改传播到实际JTable
时遇到问题。在此表中,我只允许单行选择,并且具有 Up 和 Down 的单独按钮。当一行被选中时,我需要能够上下移动该行,和保留选择。
E.g。
如果我的行是[A, B, C(selected)]
,我按下向上按钮,
我应该[A, C(selected), B]
。
到目前为止,我尝试过的各种方法都无法刷新JTable中的值,或者丢失了选择。
注意:
我对使用需要明确调用repaint()
的解决方案犹豫不决
假设JTable
中的所有单元格都不可编辑。
答案 0 :(得分:2)
回答自己的问题:
int row = mTable.getSelectedRow();
mTableModel.moveEntryUp(row);
mTable.getSelectionModel().setSelectionInterval(row -1, row -1);
mTable
是JTable,mTableModel
是我的表模型实现,相当于mTable.getModel()
(和类型转换)。
在问之前应该更长时间地戳了一下!