Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX-如何停用组合框侦听器_Java_Combobox_Javafx - Fatal编程技术网

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谢谢!哥们!救了我很多次了,哈哈,成功了:)