java - 在 JTable 中监听 KeyEvent - 如何在编辑单元格时执行此操作?

标签 java swing jtable tablecelleditor key-events

我正在开发一个 JFrame,其中包含一个 JTable 和一些其他元素。我希望用户能够做的是在表格中使用 Tab 键(具有一定的行数),然后当焦点位于表格的右下角时,再次点击 Tab 键将跳转到另一个组件,在此案例 JTextField。

我使用 KeyListener 来完成此操作,以应对用户只是在表格中使用 Tab 键的情况。我遇到的问题是,如果用户正在编辑单元格然后按选项卡,TableCellEditor 似乎有焦点,并且我添加到表中的 KeyListener 不会被调用。根据我在文档中了解到的情况,CellEditor 只能有一个 CellEditorListener,它只能有一个 ChangeEvent,这对我在这里尝试做的事情不起作用。

有人知道解决这个问题的方法,或者我没有想到的技巧吗?

最佳答案

I used a KeyListener to accomplish this for the case where the user just tabs through the table.

不要使用 KeyListener。 Swing 旨在与键绑定(bind)一起使用。

参见 Table Tabbing了解如何在提供自定义的同时重用现有选项卡操作的方法。由于此方法使用默认选项卡操作,希望它也能解决您的问题。

关于java - 在 JTable 中监听 KeyEvent - 如何在编辑单元格时执行此操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16486338/

相关文章:

java - Swing 中的 JTable

java - JTable 右对齐表头

java - 递归方法有异常、逻辑错误

java - 如何更改对应@NotNull注解返回的响应JSON

Java JTable 更新行

java - 如何自定义 jzy3d 图表

java - 需要不在 header 中定义 pageEncoding/charset (JSP)

java - JFrame/JPanel 未以组布局显示

java - 为什么 JFrame 不居中?

java - 在拖动列上显示列标题