Java 未为JComboBox触发已执行的操作
我有一个ActionListener连接到JComboBox(不可编辑)。一旦从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
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(...);