2016-04-02 8 views
0

Ich versuche, Datenvalidierung für mein Programm zu implementieren:Speziellere javafx Datenvalidierung

private boolean typeVal (TextField typeInput, String typeMessage){ 
    try { 
     String type = (typeInput.getText()); 
     addButtonClicked(); 
     return true; 
    }catch(NumberFormatException e) { 
     AlertBox.display("Datatype Error", "Please check all fields are entered and are using correct datatypes"); 
     return false; 
    } 
} 

Dies ist ein Beispiel für die Validierer, die ich zu schaffen versuchen, kommt das Problem, wenn jemand eine Reihe von Zahlen eingibt . Gibt es das überhaupt, um das nur bestimmten Charakteren näher zu bringen?

Antwort

1

In JavaFX gibt es keinen Standardvalidator. Aber es gibt mehrere JavaFX-Bibliotheken, die solche Funktionalität bieten, und keine von ihnen enthält einen einfachen Passwort-Validator. Also musste ich Validatoren von myself implementieren.

Ihr Code ist nicht ganz gut. Sie fügen Klick-Listener in einer Funktion hinzu. Sie sollten stattdessen Listener in initialize() Funktion des FXML-Controllers hinzufügen. Und auch Sie sollten Taste deaktivieren, wenn der Text leer ist:

button.disableProperty().bind(textField.textProperty().isEmpty()); 
+0

Es gibt [TextFormatter] (https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TextFormatter.html), aber im Moment verhält es sich wie Swing's [COMMIT_OR_REVERT] (https://docs.oracle.com/javase/8/docs/api/javax/swing/JFormattedTextField.html#COMMIT_OR_REVERT): Ungültige Eingabe wird automatisch verworfen und die letzte ist gut Wert wird wiederhergestellt. – VGR

+1

Ihr Link ist defekt, haben Sie Ihr Repository verschoben? – MikaelF

+0

Danke für Ihren Kommentar, ich habe meine Antwort mit korrektem Link aktualisiert. Ich habe gerade etwas refactoring gemacht und die ursprüngliche Verbindung gebrochen. –

Verwandte Themen