每当组合框上的选定项发生更改时,我都会尝试执行操作。当动作侦听器没有被通知时,一个特定的场景是当您在组合框上重置模型时。我可以使用另一个PropertyChangedListener订阅,并在模型更改时侦听,然后提取选定项,但我就是不明白为什么选定项更改事件不是在模型更改时引发数据。从视觉上看,您的选择确实会发生变化,即使您查询所选项目的cobox,它也会从null更改为某个对象……ANy清楚地解决了这个问题,而不是使用两个独立的侦听器?
发布于 2012-12-05 00:29:27
如果动作和项目侦听器在模型重置时没有触发事件,您可以通过继承JComboBox来自己触发这些事件:
public class MyComboBox extends JComboBox
{
@Override
public void setModel(ComboBoxModel aModel) {
super.setModel(aModel);
fireActionEvent();
}
}但是我想这是一个bug --你应该向官方的bugzilla报告。
https://stackoverflow.com/questions/13706789
复制相似问题