JavaFX-如何限制组合框仅通过鼠标点击触发更改的事件



我有一个组合框,我想在更改组合框中的项目后执行一些具有新值的操作:

myComboBox.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
public void changed(ObservableValue observable, String oldValue, String newValue) {
myCallWithNewValue(newValue);
}
});

它运行得和我预期的一样好,直到我有了另一个按钮来清除组合框:myComboBox.getItems().clear();

当我点击这个清除按钮时,它会清除组合框的内容,但也会触发我想要避免的更改事件。我如何告诉combobox只通过鼠标点击而不通过清除按钮来触发更改的事件,有人能帮我吗。提前谢谢!

尝试:

if(newValue != null)
{
myCallWithNewValue(newValue);
}

我还没有测试这个答案。如果null无效,请尝试newValue != ""

最新更新