2015-05-11 14 views
17

Chciałbym dodać rodzaj do mojego JavaFX's TextField, który gdy kiedykolwiek użytkownik zmieni wartość , aplikacja wypisze coś na konsoli.Detektor zmian wartości dla TextField JavaFX

Rozglądałem i znaleźć następującą bardzo podobne pytanie: Value Change Listener to JTextField

Odpowiedź z wymienionych kwestii jest bardzo jasne i skuteczne, ale niestety jest to przydatne tylko dla JTextField (nie JavaFX's TextField), ponieważ mówi, że powinien użyj DocumentListener w ten sposób:

// 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(); 
    } 

, ale w TextFields JavaFX nie można tego zrobić. Tak? Jakie jest rozwiązanie?

(opisując z kodem może być bardzo dobre, ale jeśli to nie jest możliwe, każda wskazówka będzie mile widziane)

Odpowiedz

51

dodać detektor do pola tekstowego za textProperty:

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

To rzeczywiście uczynić pole tekstowe tracą ostrość , co jest dość frustrujące dla użytkowników. – codingpuss

Powiązane problemy