每当组合框中的选定项目发生变化时,我都会尝试执行操作。一个特定的场景,当没有通知动作监听器时,是在组合框上重置模型的时候。我可以订阅另一个PropertyChangedListener
并在模型更改时收听,然后提取所选项目,但我只是不明白为什么所选项目更改事件不会在模型更改时引发。视觉上您的选择确实会发生变化,即使您查询cobox的选定项目,它确实会从null
更改为某个对象...对此明确解决此问题,而不是使用两个单独的侦听器?
答案 0 :(得分:2)
如果在重置模型时动作和项侦听器不触发事件,您可以通过继承JComboBox来自己触发这些事件:
public class MyComboBox extends JComboBox
{
@Override
public void setModel(ComboBoxModel aModel) {
super.setModel(aModel);
fireActionEvent();
}
}
但恕我直言,这是一个错误 - 你应该向官方的bugzilla报告。