2017-01-12 2 views
0

Gibt es eine Möglichkeit, Benutzer daran zu hindern, Daten in ein TextField "einzufügen"? Ich habe einen ChangeListener darauf eingestellt, aber ich kann nicht herausfinden, wie man zwischen keyboardInput und einfügen Aktion unterscheidet. Eine bestimmte Sache ist:Wie "Einfügen" Aktion auf bestimmte TextField in JavaFX zu beschränken?

myChangeListener = (ObservableValue<? extends String> observable, String oldValue, String newValue) -> { 
    if(Math.abs(newValue.length() - oldValue.length()!=1){ 
     //definitely paste - entered more than one symbol 
    } 
}; 

Aber Benutzer kann auch ein einzelnes Zeichen auf einmal einfügen. Dies ist das Szenario, das ich nicht verstehen kann. Bitte helfen Sie, danke im Voraus.

Antwort

4

Dies scheint wie eine seltsame Sache zu tun, wie es erwartet werden würde Verhalten. Aber Sie können nur die paste() Methode überschreiben, so dass es ein No-Op ist:

TextField myTextField = new TextField() { 
    @Override 
    public void paste() { } 
}; 
+0

Danke !!!! Genau das, was ich gesucht habe! –

Verwandte Themen