Swing 中的 JTable
JTable in Swing
我对 Swing 的 JTable 有疑问。似乎单元格有不同的编辑模式;一个用于单击,一个用于双击。
请参阅以下示例以更准确地理解问题:
当我只需单击一个单元格并开始输入时,我可以简单地使用 KeyListener
来检测使用 KeyEvent
的输入。每当我使用键盘键入一个键时都会触发该事件。
但是,当我双击一个单元格时,它会以某种方式使用不同的编辑模式来抑制 KeyEvents
,因此 KeyListener
永远不会被告知键盘交互。
是否有任何选项可以禁用此“第二”编辑模式或也可以为此编辑模式注册 KeyListener
?
不要使用 KeyListener。那是在旧的 AWT 应用程序中使用的。 Swing 更新更好 APIs
不知道您为什么要尝试使用 KeyListener,但在 Swing 中您可能会使用:
- 一个文档过滤器
- 一个文档监听器
阅读 Text Component Features 上的 Swing 教程了解更多信息。
所以你需要
- 获取专栏的编辑器
- 从编辑器中获取编辑器组件
阅读 API JTable 和 TableCellEditor 的适当方法。
我对 Swing 的 JTable 有疑问。似乎单元格有不同的编辑模式;一个用于单击,一个用于双击。
请参阅以下示例以更准确地理解问题:
当我只需单击一个单元格并开始输入时,我可以简单地使用 KeyListener
来检测使用 KeyEvent
的输入。每当我使用键盘键入一个键时都会触发该事件。
但是,当我双击一个单元格时,它会以某种方式使用不同的编辑模式来抑制 KeyEvents
,因此 KeyListener
永远不会被告知键盘交互。
是否有任何选项可以禁用此“第二”编辑模式或也可以为此编辑模式注册 KeyListener
?
不要使用 KeyListener。那是在旧的 AWT 应用程序中使用的。 Swing 更新更好 APIs
不知道您为什么要尝试使用 KeyListener,但在 Swing 中您可能会使用:
- 一个文档过滤器
- 一个文档监听器
阅读 Text Component Features 上的 Swing 教程了解更多信息。
所以你需要
- 获取专栏的编辑器
- 从编辑器中获取编辑器组件
阅读 API JTable 和 TableCellEditor 的适当方法。