2015-05-11 5 views
17

Я хотел бы добавить своего listener к моему JavaFX's TextField, который когда-либо пользователь меняет значение TextField, приложение печатает что-то на консоли.Редактор изменения значения для TextField JavaFX

Я искал и я нашел следующую очень похожий вопрос: Value Change Listener to JTextField

Ответ указанный вопрос очень четко и эффективно, но, к сожалению, это только полезно для JTextField (не JavaFX's TextField), потому что он говорит, что вы должны использовать DocumentListener как это:

// Listen for changes in the text 
textField.getDocument().addDocumentListener(new DocumentListener() { 
    public void changedUpdate(DocumentEvent e) { 
    warn(); 
    } 
    public void removeUpdate(DocumentEvent e) { 
    warn(); 
    } 
    public void insertUpdate(DocumentEvent e) { 
    warn(); 
    } 

но в TextFields JavaFX ты не в состоянии сделать это. Итак? Каково решение?

(описание с кодом может быть очень хорошим, но если это не представляется возможное, любой намек будет понятно)

ответ

51

Добавить слушатель TextProperty текстового поля в:

TextField textField = new TextField(); 
textField.textProperty().addListener((observable, oldValue, newValue) -> { 
    System.out.println("textfield changed from " + oldValue + " to " + newValue); 
}); 
+1

На самом деле это сделать текстовое поле теряет фокус , что довольно неприятно для пользователей. – codingpuss

Смежные вопросы