我正在尝试编写一个程序,该程序将从一个下拉框中获取输入,并使用它来计算另一个字段的下拉框,但我一直遇到问题。为了使其工作,我必须在重新填充 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/