Java 将KeyListener添加到JCombobox编辑器和JCombobox本身之间有什么区别

Java 将KeyListener添加到JCombobox编辑器和JCombobox本身之间有什么区别,java,swing,Java,Swing,这个很好用。但是,在将keyListener添加到jcomboBox时,按下“Enter”键时,keyPress不会被重新组织。将keyListener添加到jComboxBox和将listener添加到其编辑器之间的确切区别是什么?何时将listener添加到编辑器 listItemsCombo.getEditor().getEditorComponent().addKeyListener(new keyPressListener()); //Works correct 将keyLi

这个很好用。但是,在将keyListener添加到jcomboBox时,按下“Enter”键时,keyPress不会被重新组织。将keyListener添加到jComboxBox和将listener添加到其编辑器之间的确切区别是什么?何时将listener添加到编辑器

    listItemsCombo.getEditor().getEditorComponent().addKeyListener(new keyPressListener()); //Works correct
将keyListener添加到jComboxBox和将listener添加到其编辑器之间的确切区别是什么

KeyEvents仅调度到具有焦点的组件

何时向编辑器添加侦听器

    listItemsCombo.getEditor().getEditorComponent().addKeyListener(new keyPressListener()); //Works correct

您不应该在组合框或编辑器上使用KeyListener。Swing设计用于
键绑定
。使用键绑定,您可以处理
击键
,即使组件没有焦点(如果您愿意)。更多信息,请阅读Swing教程中的部分。

当我使用编辑器的侦听器时,它的可能副本工作得很好。但我的问题是何时使用它?我们是否使用它?可以使用键绑定。我也需要听键盘输入。按键绑定可用于按键。但要从键盘获取用户输入(如abc..),我需要添加一个keyListener,对吗?或者可以使用keyBindings执行?@divya,当您想在按下特定键时调用操作时,会使用keyBindings。如果您只想知道文本何时添加到文本字段,那么应该使用
DocumentListener
。本教程还有一节介绍“如何编写DocumentListener”。