2012-12-04 60 views
1

我试图在组合框中的选定项目发生更改时执行操作。当没有通知动作监听者时,一种特殊的情况是在复合框上重置模型。我可以订阅另一个PropertyChangedListener,并在模型更改时收听,然后提取选定的项目,但我不明白为什么选择的项目更改事件不会在模型更改时加注。在视觉上,您的选择会发生变化,即使您查询所选项目的复合框,它也会从null更改为某个对象......对此,您可以清楚地了解它,而不是使用两个单独的听众?Jcombobox - 订阅selectedItemChanged事件

+0

你是否尝试过使用item listener而不是action listener? –

+0

是的,同样的东西 – Bober02

回答

2

如果行动和项目的听众不火的事件当模型被重置,你可以自己通过继承的JComboBox火那些事件:

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

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

+0

这会做,但我想我会坚持传统propertyChangedListenr – Bober02