Swing 中的 JTable

JTable in Swing

我对 Swing 的 JTable 有疑问。似乎单元格有不同的编辑模式;一个用于单击,一个用于双击。

请参阅以下示例以更准确地理解问题:

当我只需单击一个单元格并开始输入时,我可以简单地使用 KeyListener 来检测使用 KeyEvent 的输入。每当我使用键盘键入一个键时都会触发该事件。

但是,当我双击一个单元格时,它会以某种方式使用不同的编辑模式来抑制 KeyEvents,因此 KeyListener 永远不会被告知键盘交互。

是否有任何选项可以禁用此“第二”编辑模式或也可以为此编辑模式注册 KeyListener

不要使用 KeyListener。那是在旧的 AWT 应用程序中使用的。 Swing 更新更好 APIs

不知道您为什么要尝试使用 KeyListener,但在 Swing 中您可能会使用:

  1. 一个文档过滤器
  2. 一个文档监听器

阅读 Text Component Features 上的 Swing 教程了解更多信息。

所以你需要

  1. 获取专栏的编辑器
  2. 从编辑器中获取编辑器组件

阅读 API JTable 和 TableCellEditor 的适当方法。