Java 未为JComboBox触发已执行的操作

Java 未为JComboBox触发已执行的操作,java,swing,jcombobox,actionlistener,Java,Swing,Jcombobox,Actionlistener,我有一个ActionListener连接到JComboBox(不可编辑)。一旦从JComboBox中选择了一个项目,我就必须使框架中的“下一步”按钮可见 代码的框架如下所示: public void actionPerformed(ActionEvent evt) { if(evt.getSource()==jComboBox){ if(jComboBox.getSelectedIndex()==-1) //Display an alert mes

我有一个ActionListener连接到JComboBox(不可编辑)。一旦从JComboBox中选择了一个项目,我就必须使框架中的“下一步”按钮可见

代码的框架如下所示:

public void actionPerformed(ActionEvent evt)
{
    if(evt.getSource()==jComboBox){
        if(jComboBox.getSelectedIndex()==-1)
            //Display an alert message

        else{
            nextButton.setVisible(true);
        //Do other actions
        }
    }
}
发现actionPerformed仅在选择了第二、第三、第四项(等等)时才被调用。但是,当第一次选择第一个项目时,不会调用actionPerformed。但是,如果在选择其他项之后选择了第一项,则会调用actioPerformed,并且代码工作正常

此错误出现在某些系统上,在其他系统上不会出现。在此方面的任何帮助都将不胜感激


提前谢谢

似乎您的第一个条件有点错误


如果要在JComboBox中没有项目的情况下执行某些代码,则应检查内容大小:
JComboBox.getItemCount()==0
,而不是
JComboBox.getSelectedIndex()==-1
,因为所选索引可能取决于各种条件,而getItemCount()仅在以下情况下为0:,组合框为空:-)

这是正常行为。重新选择同一项时不会激发ActionEvent。如果希望在创建组合框时触发事件,则代码应类似于:

JComboBox comboBox = new JComboBox(...);
comboBox.setSelectedIndex(-1); // remove automatic selection of first item
comboBox.addActionListener(...);
comboBox.setSelectedIndex(0);

JComboBox comboBox = new JComboBox();
comboBox.addActionListener(...);
comboBox.addItem(...);
comboBox.addItem(...);