[英]JavaFX - ComboBox listener for its textfield
我什至不確定如何正確提出這個問題,但是當ComboBox
設置為可編輯時,是否可以在此處添加偵聽器(在ComboBox
此文本字段上):
目前我正在為ComboBox
使用 2 種偵聽器。 鼠標和更改偵聽器。 MouseListener
用於點擊ComboBox
和ChangeListener
用於選擇ComboBox
的項目。 但我不知道我應該使用什么樣的監聽器來監聽文本輸入。
如果您只對ComboBox
的可編輯區域 ( TextField
) 感興趣,請使用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");
}
});
當TextField
失去焦點時,最后一個文本將設置為ComboBox
的valueProperty
。
在 JavaFX 中,您可以將通知事件附加到控件可能擁有的任何屬性。 在您的情況下,您需要決定是否希望在組合框的可編輯值字段更改時收到通知,或者是否希望在用戶每次在值字段中輸入鍵時接收鍵事件。
如果您只是希望在組合框的 value 字段更改的情況下對事件采取行動,您可以為其 valueProperty 注冊一個 ChangeListener,它在 Javadocs 中定義如下:
valueProperty:如果輸入不可編輯,則此 ComboBox 的值定義為所選項目,或者如果它是可編輯的,則為最近的用戶操作:用戶輸入的值,或最后選擇的項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.