2011-11-01 47 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。您应该可以修改或替换映射到“输入”键的操作。

祝你好运!

相关问题