2

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

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

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

但是,我在将表模型中所做的更改传播到实际的JTable. 在这个表中,我只允许单行选择,并且有单独的按钮UpDown。When a row is elected, I need to be able to move that row up and down, and preserve the selection.

例如,
如果我的行是[A, B, C(selected)],并且我按下向上按钮,
我应该得到[A, C(selected), B]

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


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

4

1 回答 1

2

回答自己的问题:

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

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

在问之前应该多花点时间!

于 2010-02-05T01:07:08.567 回答