1

每当组合框上的选定项目发生更改时,我都会尝试执行操作。一种特殊情况是,当您在组合框上重置模型时,未通知操作侦听器。我可以订阅另一个PropertyChangedListener并在模型更改时收听,然后提取所选项目,但我根本不明白为什么在模型更改时未引发所选项目更改事件。从视觉上看,您的选择确实发生了变化,即使您在 cobox 中查询所选项目,它也会从null某个对象更改...对此有任何明确的解决方案,而不是使用两个单独的侦听器?

4

1 回答 1

2

如果重置模型时动作和项目侦听器不触发事件,您可以通过继承 JComboBox 自己触发这些事件:

public class MyComboBox extends JComboBox 
{
    @Override
    public void setModel(ComboBoxModel aModel) {
        super.setModel(aModel);
        fireActionEvent();
    }
}

但恕我直言,这是一个错误 - 你应该向官方 bugzilla 报告。

于 2012-12-04T16:29:26.530 回答