[[oktatas:programozás:java:java_fx|< Java FX]]
====== JavaFX - Szövegbevitel ======
* **Szerző:** Sallai András
* Copyright (c) 2025, Sallai András
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== A szövegbevitel eszközei =====
Szövegbevitelre a következő kontrollok alkalmasak:
* TextField - egysoros szöveg bevitele
* TextArea - többsoros szöveg bevitele
* PasswordField - jelszavak bevitele
===== TextField =====
Szöveg figyelése:
textField1.textProperty().addListener((observable, oldValue, newValue) -> {
});
Mindenegyes beírt karaktert meg tudunk vizsgálni. Az oldaValue változóban megkapjuk az eredeti
tartalmat, a newValue változóban a változás utáni tartalmat.
===== TextField bevitel vizsgálata =====
Vizsgáljuk meg, hogy a beírt szöveg az angol ábécé betűiből áll:
textField1.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("[a-zA-Z]")) {
if(!textField1.getStyleClass().contains("error")) {
textField1.getStyleClass().add("error");
}
return;
}else {
textField1.getStyleClass().remove("error");
}
});
===== Bevitt szöveg átalakítása =====
A bevitt szöveg legyen nagybetűs.
textField1.textProperty().addListener((observable, oldValue, newValue) -> {
if (newValue != null) {
textField1.setText(newValue.toUpperCase());
// A kurzor pozíciójának megtartása a setText után
int caretPosition = field.getCaretPosition();
textField1.positionCaret(caretPosition);
}
});