2015-05-11 15 views
17

JavaFX's TextField benim JavaFX's TextField için bir kullanıcı eklemek istiyorum TextField değerini değiştirir, Uygulama konsolda bir şey yazdırır.JavaFX'in TextField için Değer Değişikliği Dinleyicisi

Ben aramalara ve ben şu çok benzer soruyu bulmak: Value Change Listener to JTextField

bahsedilen sorunun cevabı çok açık ve etkili, fakat maalesef buna yapmanız gerekir diyor çünkü JTextField (Not JavaFX's TextField) için yararlıdır böyle DocumentListener kullanın:

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

ama JavaFX en textfields içinde

bunu yapmak mümkün değildir. Peki? Çözüm nedir?

cevap

51

TextField en textProperty için bir dinleyici ekleyin (kodu ile açıklayan çok iyi ama mümkün değilse, herhangi bir ipucu takdir edilecektir olabilir):

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

Bu aslında textfield'ı yapmak odak kaybetmek kullanıcılar için oldukça sinir bozucu olan. – codingpuss