Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JComboBox是否有postActionEvent?_Java_Macos_Swing_Jcombobox_Key Events - Fatal编程技术网

Java JComboBox是否有postActionEvent?

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

我在一个JTextField上成功地使用了postActionEvent(),该JTextField有一个ActionListener来模拟用户操作(按Enter键)。我想为具有ActionListener的JComboBox创建相同类型的模拟,但我没有找到JComboBox的postActionEvent()。如何实现这一点(模拟用户按Enter键)

如何实现这一点(模拟用户按Enter键)

组合框有一个
“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。是的,您是正确的。在阅读了另一个问题之后,我明白了。我很难理解键绑定。我会继续学习。