JavaFX-如何停用组合框侦听器
我正在使用另一个JavaFX-如何停用组合框侦听器,java,combobox,javafx,Java,Combobox,Javafx,我正在使用另一个ComboBox combo2的侦听器修改ComboBox combo1 combo1有一个ChangeListener,用于修改ListView列表视图的内容 问题是:如果我使用combo2的ChangeListener更改combo1的内容,我必须清除combo1,但这样做会导致空内容暂时变为空,因此列表视图无法填充,我会得到一个nullPointerException 我能想到的解决办法是: 我停用或禁用组合1的ChangeListener 我更改了combo2的值,该值将
ComboBox combo2
的侦听器修改ComboBox combo1
combo1
有一个ChangeListener,用于修改ListView列表视图的内容
问题是:如果我使用combo2
的ChangeListener更改combo1
的内容,我必须清除combo1
,但这样做会导致空内容暂时变为空,因此列表视图无法填充,我会得到一个nullPointerException
我能想到的解决办法是:
我停用或禁用组合1的ChangeListener李>
我更改了combo2
的值,该值将修改combo1
的项目(我想我不会得到任何NPE,因为combo1
没有ChangeListener,所以它没有观察到更改列表视图的内容)李>
再次激活combo1
ChangeListener(或再次设置)
有没有办法停用组合框ChangeListener 为什么不添加一个空检查?你是说?我尝试了combo1.valueProperty().addListener(新的changeStener(){@Override public void changed(observeValue ov,字符串t,字符串t1){})代码>不工作:(我遇到过类似的情况,只需完全删除侦听器,修改组合框,然后将侦听器添加回组合框。null
check意味着您只需在使用它之前检查它是否为null
。if(t1!=null){…}
@James\u D谢谢!哥们!救了我很多次了,哈哈,成功了:)