2010-02-05 17 views
1

我有一個JTable(擴展)和TableModel,其中我有方法的實現......的Java:JTable中重新排序行,並刷新

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

。 ..在表模型實現中。我已經證實這些工作正常。

但是,我在將表模型中所做的更改傳播到實際JTable時遇到問題。在這張表中,我只允許單行選擇,並且有單獨的按鈕用於向上向下。當一行被選中時,我需要能夠上下移動該行,保留選擇。

例如
如果我的行是[A, B, C(selected)],並且我按了向上按鈕,
我應該得到[A, C(selected), B]

到目前爲止我嘗試過的各種方法都無法刷新JTable中的值,或者失去了選擇。


注:
我很猶豫要使用的要求repaint()的顯式調用的解決方案。
假設JTable中的所有單元都是而不是可編輯。

回答

2

回答自己的問題:

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

哪裏mTable是JTable中,並mTableModel是我的表模型實現,並且是等同於mTable.getModel()(和類型轉換)。

在問問題之前應該多花點時間!