2015-03-02 78 views
0
listItemsCombo.getEditor().getEditorComponent().addKeyListener(new keyPressListener()); //Works correct 

这工作正常。但是,在将keyListener添加到jcomboBox时,按下“Enter”键时keyPress不会被识别。将keyListener添加到jComboxBox并向其编辑器中添加侦听器之间的区别是什么?何时将侦听器添加到编辑器中?是添加KeyListener到JCombobox编辑器和JCombobox本身之间有什么区别

listItemsCombo.addKeyListener(new KeyPressListener())//When should we use this? 
+0

[Java Editable JCombobox Keylistener event for Enter key]可能的重复(http://stackoverflow.com/questions/14056301/java-editable-jcombobox-keylistener-event-for-enter-key) – 2015-03-02 11:49:57

+0

它可以很好地工作我使用编辑器的监听器,但我的问题是何时使用它?我们是否使用它? – divya 2015-03-02 11:55:38

回答

0

什么添加的KeyListener到jComboxBox并添加监听器,它的编辑器之间准确的区别?

KeyEvents仅被分派到具有焦点的组件。

何时向监听器添加监听器?

您不应该在组合框或编辑器上使用KeyListener。 Swing旨在与Key Bindings一起使用。使用密钥绑定,即使组件没有焦点(如果您愿意),您也可以处理KeyStroke。请阅读有关How to Use Key Bindings的Swing教程以了解更多信息。

+0

可以使用KeyBindings。我也需要聆听KeyTyped。 KeyBindings可用于KeyPress。但是为了从keyBoard获取userInput(像abc ..这样的键),我需要添加一个keyListener,或者它可以使用keyBindings来执行? – divya 2015-03-03 05:40:36

+0

@divya,当您想要在按下特定键时调用动作时使用键绑定。如果您只想知道文本何时添加到文本字段,那么您应该使用“DocumentListener”。本教程还有一节“如何编写DocumentListener”。 – camickr 2015-03-03 07:01:18

相关问题