2

我什至不确定如何正确地问这个问题,但是是否可以在此处添加侦听器(在此文本字段中ComboBox),何时ComboBox设置为可编辑:

在此处输入图像描述

目前我正在为ComboBox. 鼠标和更改侦听器。MouseListener用于点击ComboBoxChangeListener选择 中的项目ComboBox。但我不知道应该使用什么样的监听器来监听文本输入。

4

2 回答 2

9

如果您只对 的可编辑区域 ( TextField)感兴趣ComboBox,请使用ComboBox#getEditor()

ComboBox combobox = new ComboBox();
combobox.setEditable(true);
combobox.getEditor().textProperty().addListener(new ChangeListener<String>() {

    @Override
    public void changed(ObservableValue<? extends String> observable, 
                                    String oldValue, String newValue) {
        System.out.println("Text changed");
    }
});

当失去焦点时,最后一个文本将设置为ComboBox's 。valuePropertyTextField

于 2013-09-06T12:29:37.070 回答
1

在 JavaFX 中,您可以将通知事件附加到控件可能拥有的任何属性。在您的情况下,您需要决定是否要在组合框的可编辑值字段更改时收到通知,或者是否要在用户每次在值字段中输入键时接收键事件。

如果您只是希望在组合框的 value 字段更改的情况下对事件采取行动,您可以为其 valueProperty 注册一个 ChangeListener,它在 Javadocs 中定义如下:

valueProperty:如果输入不可编辑,则此 ComboBox 的值被定义为选定项,或者如果它是可编辑的,则定义为最近的用户操作:用户输入的值或最后一次选定的项。

于 2013-09-06T12:24:07.940 回答