【问题标题】:Jcombobox - subscribe to selectedItemChanged eventJcombobox - 订阅 selectedItemChanged 事件
【发布时间】:2012-12-04 15:56:07
【问题描述】:

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

【问题讨论】:

  • 您是否尝试过使用项目监听器而不是动作监听器?

标签: java swing actionlistener jcombobox event-listener


【解决方案1】:

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

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

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

【讨论】:

  • 这可以,但我想我会坚持传统的 propertyChangedListenr
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多