簡體   English   中英

JavaFX - 其文本字段的 ComboBox 偵聽器

[英]JavaFX - ComboBox listener for its textfield

我什至不確定如何正確提出這個問題,但是當ComboBox設置為可編輯時,是否可以在此處添加偵聽器(在ComboBox此文本字段上):

在此處輸入圖片說明

目前我正在為ComboBox使用 2 種偵聽器。 鼠標和更改偵聽器。 MouseListener用於點擊ComboBoxChangeListener用於選擇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失去焦點時,最后一個文本將設置為ComboBoxvalueProperty

在 JavaFX 中,您可以將通知事件附加到控件可能擁有的任何屬性。 在您的情況下,您需要決定是否希望在組合框的可編輯值字段更改時收到通知,或者是否希望在用戶每次在值字段中輸入鍵時接收鍵事件。

如果您只是希望在組合框的 value 字段更改的情況下對事件采取行動,您可以為其 valueProperty 注冊一個 ChangeListener,它在 Javadocs 中定義如下:

valueProperty:如果輸入不可編輯,則此 ComboBox 的值定義為所選項目,或者如果它是可編輯的,則為最近的用戶操作:用戶輸入的值,或最后選擇的項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM