如果选择了DIFFERENT值,组合框将触发事件。我希望能够听到正在选择的SAME项目(也就是说,valueProperty没有变化)。似乎没有办法做到这一点。
我尝试扩展ComboBox并找到一种方法来监听关闭的小弹出菜单,但我甚至无法访问它!我该怎么办?
以下是我的尝试:
class ResponsiveComboBox<E> extends ComboBox<E> {
public ResponsiveComboBox() {
super();
assert getContextMenu() != null; //Asssertion failed!
this.getContextMenu().setOnHiding((WindowEvent event) -> {
fireEvent(new ActionEvent());
});
}
}
答案 0 :(得分:3)
comboBox.showingProperty().addListener((obs, wasShowing, isShowing) -> {
if (! isShowing) {
System.out.println("Combo box popup hidden");
}
});
可能会在更改值之前触发此事件处理程序。