Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:JTable重新排列行和刷新_Java_Jtable_Tablemodel - Fatal编程技术网

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)

在问之前应该多呆一会儿