如果选择了一个不同的值,组合框将触发一个事件。我还希望能够收听被选中的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());
});
}
}
最佳答案
comboBox.showingProperty().addListener((obs, wasShowing, isShowing) -> {
if (! isShowing) {
System.out.println("Combo box popup hidden");
}
});
更改值之前,可能会触发此事件处理程序。