2012-01-15 26 views
1

java java jTable類的一個問題。其實我不是一個Java程序員,現在只是使用Java在Matlab中設計GUI。我所做的是:從表格模型中刪除一行後還原jTable焦點和位置

  • jTable內置到Matlab GUI中。
  • 我在jTable中使用/稱爲RowFilter,它可以使jTable顯示過濾結果。
  • 然後從這個過濾視圖的結果中,我使用表模型中的removeRow方法刪除一個或多個選定的行。

問題是,如果我每次刪除一行,表格內容會根據需要刷新本身,但滾動條會跳回到開頭。

有誰知道如何抑制這種跳躍並保持jTable的原始視圖?因爲這有助於我不必回滾以找到開始刪除的原始位置。

謝謝你的建議和幫助。

+0

聽起來像tableModel發射一個不正確的事件(fi dataChanged,而不是rowDeleted) – kleopatra 2012-01-17 09:56:32

+0

剛剛檢查:與核心JTable和DefaultTableModel工作正常,所以你的代碼有問題(@trashgod:確實需要手動干擾:-) – kleopatra 2012-01-17 10:13:36

+0

謝謝你的建議。你能告訴我如何檢查和糾正錯誤的地方嗎? – OISS 2012-01-17 15:43:32

回答

1

調用表的scrollRectToVisible()方法;通過它RectanglegetCellRect()返回所需的行。

+0

應該不是必需的 – kleopatra 2012-01-17 09:59:28

+0

@kleopatra是正確的;另見['TableAddTest'](http://stackoverflow.com/a/7519403/230513)。 – trashgod 2012-01-17 15:54:48