我什至不确定如何正确地问这个问题,但是是否可以在此处添加侦听器(在此文本字段中ComboBox
),何时ComboBox
设置为可编辑:
目前我正在为ComboBox
. 鼠标和更改侦听器。MouseListener
用于点击ComboBox
和ChangeListener
选择 中的项目ComboBox
。但我不知道应该使用什么样的监听器来监听文本输入。
如果您只对 的可编辑区域 ( 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 。valueProperty
TextField
在 JavaFX 中,您可以将通知事件附加到控件可能拥有的任何属性。在您的情况下,您需要决定是否要在组合框的可编辑值字段更改时收到通知,或者是否要在用户每次在值字段中输入键时接收键事件。
如果您只是希望在组合框的 value 字段更改的情况下对事件采取行动,您可以为其 valueProperty 注册一个 ChangeListener,它在 Javadocs 中定义如下:
valueProperty:如果输入不可编辑,则此 ComboBox 的值被定义为选定项,或者如果它是可编辑的,则定义为最近的用户操作:用户输入的值或最后一次选定的项。