Java:JTable重新排列行和刷新
我有一个Java:JTable重新排列行和刷新,java,jtable,tablemodel,Java,Jtable,Tablemodel,我有一个JTable(扩展)和一个TableModel的实现,其中我有 moveEntryUp(int-rowIdx) moveEntryDown(int-rowIdx) 。。。在表模型实现中。我已经证实这些设备工作正常 但是,我在将表模型中所做的更改传播到实际的JTable时遇到了问题。在这个表中,我只允许单行选择,并且有单独的按钮用于向上和向下。当一行被选中时,我需要能够上下移动该行,并保留所选内容 例如 如果我的行是[A、B、C(已选择)],并且我按下了向上按钮, 我应该得到[A,C(
JTable
(扩展)和一个TableModel
的实现,其中我有
moveEntryUp(int-rowIdx)
moveEntryDown(int-rowIdx)
JTable
时遇到了问题。在这个表中,我只允许单行选择,并且有单独的按钮用于向上和向下。当一行被选中时,我需要能够上下移动该行,并保留所选内容
例如如果我的行是
[A、B、C(已选择)]
,并且我按下了向上按钮,我应该得到
[A,C(已选),B]
到目前为止,我尝试的各种方法要么无法刷新JTable中的值,要么丢失选择
注:
我不太愿意使用需要显式调用
repaint()
的解决方案假设
JTable
中的所有单元格都不可编辑。回答自己的问题:
int row = mTable.getSelectedRow();
mTableModel.moveEntryUp(row);
mTable.getSelectionModel().setSelectionInterval(row -1, row -1);
其中mTable
是JTable,而mTableModel
是我的表模型实现,相当于mTable.getModel()
(和typecast)
在问之前应该多呆一会儿