Java Jcombobox-订阅selectedItemChanged事件
每当组合框上的选定项发生更改时,我都会尝试执行一个操作。当没有通知操作侦听器时,一个特定的场景是在组合框上重置模型。我可以订阅另一个Java Jcombobox-订阅selectedItemChanged事件,java,swing,actionlistener,jcombobox,event-listener,Java,Swing,Actionlistener,Jcombobox,Event Listener,每当组合框上的选定项发生更改时,我都会尝试执行一个操作。当没有通知操作侦听器时,一个特定的场景是在组合框上重置模型。我可以订阅另一个PropertyChangedListener,并在模型更改时侦听,然后提取所选项目,但我不明白为什么模型更改时所选项目更改事件不会引发数据。从视觉上看,您的选择确实发生了变化,即使您在cobox中查询所选项目,它也会从null变为某个对象。。。是否有明确的解决方案,而不是使用两个单独的侦听器?如果在重置模型时操作和项目侦听器未触发事件,则可以通过将JComboBo
PropertyChangedListener
,并在模型更改时侦听,然后提取所选项目,但我不明白为什么模型更改时所选项目更改事件不会引发数据。从视觉上看,您的选择确实发生了变化,即使您在cobox中查询所选项目,它也会从null
变为某个对象。。。是否有明确的解决方案,而不是使用两个单独的侦听器?如果在重置模型时操作和项目侦听器未触发事件,则可以通过将JComboBox子类化来自行触发这些事件:
public class MyComboBox extends JComboBox
{
@Override
public void setModel(ComboBoxModel aModel) {
super.setModel(aModel);
fireActionEvent();
}
}
但是我认为这是一个bug-你应该向官方bugzilla报告。你试过使用项目侦听器而不是操作侦听器吗?这可以,但我想我会坚持传统的属性ChangedListenr