FormsFX Maven
<dependency>
<groupId>com.dlsc.formsfx</groupId>
<artifactId>formsfx-core</artifactId>
<version>11.3.2</version>
</dependency>
JavaFX FormsFX Field et Validator
package fr.ronanlefichant.formvalidation;
import com.dlsc.formsfx.model.structure.Field;
import com.dlsc.formsfx.model.structure.Form;
import com.dlsc.formsfx.model.structure.Group;
import com.dlsc.formsfx.model.validators.CustomValidator;
import com.dlsc.formsfx.model.validators.RegexValidator;
import com.dlsc.formsfx.model.validators.StringLengthValidator;
import com.dlsc.formsfx.view.renderer.FormRenderer;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
/**
* JavaFX App
*/
public class App extends Application {
@Override
public void start(Stage stage) {
// Vérifie l'email
RegexValidator shouldBeValidEmailValidator = RegexValidator.forEmail("L'email doit être valide");
// Vérifie si le mot de passe contient des lettres minuscules et majuscules
CustomValidator < String > shouldContainUpperAndLowerCaseValidator = CustomValidator.forPredicate(
value -> !value.equals(value.toUpperCase()) && !value.equals(value.toLowerCase()),
"Le mot de passe doit contenir des minuscules et majuscules");
// Vérifie si le mot de passe contient au moins un chiffre
RegexValidator shouldContainNumberValidator = RegexValidator.forPattern(".*[0-9].*",
"Le mot de passe doit contenir au moins un chiffre");
// Vérifie si le mot de passe contient au moins 10 caractères
StringLengthValidator atLeastlengthOf10 = StringLengthValidator.atLeast(10,
"Le mot de passe doit contenir au moins 10 caractères");
// Vérifie si le mot de passe contient au moins un caractère spécial
RegexValidator shouldContainSpecialsValidator = RegexValidator.forPattern(".*[\\%\\^\\~\\|\\<\\>\\&\\@\\#].*",
"Le mot de passe doit contenir au moins un caractère spécial");
// Création du formulaire
Form form = Form.of(Group.of(
// Champ texte vide
Field.ofStringType("")
// Le libellé
.label("Nom d'utilisateur")
// Champ requis
.required("Ce champ doit être renseigné")
// Validation
.validate(shouldBeValidEmailValidator),
// Champ mot de passe vide
Field.ofPasswordType("")
// Le libellé
.label("Mot de passe")
// Champ requis
.required("Ce champ doit être renseigné")
// Validation
.validate(
shouldContainUpperAndLowerCaseValidator, shouldContainNumberValidator, atLeastlengthOf10,
shouldContainSpecialsValidator)))
// Titre du formulaire
.title("Login");
var scene = new Scene(new StackPane(new FormRenderer(form)), 640, 480);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
Commentaires
Enregistrer un commentaire