Java JComboBox是否有postActionEvent?
我在一个JTextField上成功地使用了postActionEvent(),该JTextField有一个ActionListener来模拟用户操作(按Enter键)。我想为具有ActionListener的JComboBox创建相同类型的模拟,但我没有找到JComboBox的postActionEvent()。如何实现这一点(模拟用户按Enter键) 如何实现这一点(模拟用户按Enter键) 组合框有一个Java JComboBox是否有postActionEvent?,java,macos,swing,jcombobox,key-events,Java,Macos,Swing,Jcombobox,Key Events,我在一个JTextField上成功地使用了postActionEvent(),该JTextField有一个ActionListener来模拟用户操作(按Enter键)。我想为具有ActionListener的JComboBox创建相同类型的模拟,但我没有找到JComboBox的postActionEvent()。如何实现这一点(模拟用户按Enter键) 如何实现这一点(模拟用户按Enter键) 组合框有一个“enterPressed”操作。因此,您应该能够从组合框的ActionMap访问Acti
“enterPressed”
操作。因此,您应该能够从组合框的ActionMap
访问Action
,然后手动调用操作的actionPerformed(…)
方法
签出一个程序,列出所有Swing组件的所有绑定。您也可以使用KeyListener:
addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent event) {
if (event.getKeyChar() == KeyEvent.VK_ENTER) {
if (((JTextComponent) ((JComboBox) ((Component) event
.getSource()).getParent()).getEditor()
.getEditorComponent()).getText().isEmpty())
System.out.println("please dont make me blank");
}
}
});
请参见此这不会“模拟”用户调用Enter键。此外,Swing设计用于
键绑定
,而不是KeyListener。是的,您是正确的。在阅读了另一个问题之后,我明白了。我很难理解键绑定。我会继续学习。