2011-11-01 46 views
5

如果有人編輯JTable的單元格內容並按下回車鍵,則會修改內容並將表格選擇移動到下一行。如何讓JTable停留在編輯的單元格上

是否可以通過在單元版之後禁止JTable進入下一行?

原因是我的程序使用ListSelectionListener在單元格選擇上同步了一些其他窗口小部件,並且我不想在編輯當前單元格後選擇下一行。

回答

7

默認綁定爲輸入Action名爲selectNextRowCell。要覆蓋WHEN_ANCESTOR_OF_FOCUSED_COMPONENT輸入映射中的條目,您需要提供doNothing()Action,如How to Use Key Bindings: How to Make and Remove Key Bindings中所述。

+0

很棒的建議!完成的工作是添加一個對table.getCellEditor()的調用。stopCellEditing();在actionPerformed(...)方法中。如果沒有這個調用,當用戶按下回車鍵時,單元格仍然處於編輯模式。 – Martin

+0

好點;另請參閱[使用編輯器驗證用戶輸入的文本](http://download.oracle.com/javase/tutorial/uiswing/components/table.html#validtext)。 – trashgod

1

我不確定究竟該怎麼做,但我會考慮ActionMap。您應該可以修改或替換映射到「輸入」鍵的操作。

祝你好運!

相關問題