Java:JTable重新排序行和刷新

时间:2010-02-05 01:03:05

标签: java jtable tablemodel

我有JTable(扩展)和TableModel的实现,其中我有方法......

  • moveEntryUp(int rowIdx)
  • moveEntryDown(int rowIdx)

...在表模型实现中。我已经证实这些工作正常。

但是,我在将表模型中所做的更改传播到实际JTable时遇到问题。在此表中,我只允许单行选择,并且具有 Up Down 的单独按钮。当一行被选中时,我需要能够上下移动该行,保留选择。

E.g。
如果我的行是[A, B, C(selected)],我按下向上按钮,
我应该[A, C(selected), B]

到目前为止,我尝试过的各种方法都无法刷新JTable中的值,或者丢失了选择。


注意:
我对使用需要明确调用repaint()的解决方案犹豫不决 假设JTable中的所有单元格都可编辑。

1 个答案:

答案 0 :(得分:2)

回答自己的问题:

int row = mTable.getSelectedRow();
mTableModel.moveEntryUp(row);
mTable.getSelectionModel().setSelectionInterval(row -1, row -1);

mTable是JTable,mTableModel是我的表模型实现,相当于mTable.getModel()(和类型转换)。

在问之前应该更长时间地戳了一下!