java - Actionlistener/JComboBox 冲突

标签 java swing awt actionlistener jcombobox

我正在尝试编写一个程序,该程序将从一个下拉框中获取输入,并使用它来计算另一个字段的下拉框,但我一直遇到问题。为了使其工作,我必须在重新填充 JComboBox 之前删除 JComboBox 上的所有项目,但这会导致程序引发异常。

jbox1.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    autoCalc();

    String s = jbox1.getSelectedItem().toString();
     workS.set1(s);  
    jbox2.removeAllItems();
     for(int i = 0; i <= workS.jbox1.getSelectedItem; i++)
         {
         String temp = ("" + i);
         jbox2.addItem(temp);
         } 
        autoCalc();
     }
});


jbox2.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    autoCalc();      
    String s = jbox2.getSelectedItem().toString();
     workS.set2(s);  
        autoCalc();
     }
});

据我所知,从 jbox2 中删除所有项目会调用 jbox2 Action 监听器,该监听器意识到该字段为空并引发异常。有人有办法解决这个问题吗?

最佳答案

保留添加到 jbox2 的 ActionListener 的引用。在删除项目并填充新列表之前,请删除 ActionListener 并在模型填充新项目后读取。

关于java - Actionlistener/JComboBox 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12240729/

相关文章:

java - Solr 因在 org.apache.solr.core 上打开新搜索器时出错而停止

java - 可重入锁对象锁定

java - 为什么使用 EJB @Schedule 的类不能是抽象类?

java - 从 MySql 创建时间图表

java - 使用 JColorChooser 更改 JPanel 颜色

java - 如何移动JPanel中图形的位置

java - 线程中的异常 "AWT-EventQueue-0"java.lang.NumberFormatException : For input string ""

java - 如何删除jtable中的所有行?

java - Launch4j启用远程调试

java - JApplet 行为异常