[[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); } });