ComboBox SAME项目选定的动作侦听器

时间:2014-09-06 20:11:55

标签: java events combobox javafx javafx-8

如果选择了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());
        });
    }

}

1 个答案:

答案 0 :(得分:3)

comboBox.showingProperty().addListener((obs, wasShowing, isShowing) -> {
    if (! isShowing) {
        System.out.println("Combo box popup hidden");
    }
});

可能会在更改值之前触发此事件处理程序。