JavaFXطريقة التشييك على النص المدخل في PasswordField
المثال التالي يعلمك طريقة التشييك على النص الذي يتم إدخاله في PasswordField
.
مثال
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.input.KeyEvent; import javafx.scene.paint.Color; import javafx.stage.Stage; public class Main extends Application { public void start(Stage stage) { // هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة Label label = new Label("Password"); PasswordField passwordField = new PasswordField(); Label statusLabel = new Label(); // هنا قمنا بتحديد مكان ظهور الأشياء التي سنضيفها في النافذة label.setTranslateX(90); label.setTranslateY(103); passwordField.setTranslateX(160); passwordField.setTranslateY(100); statusLabel.setTranslateX(160); statusLabel.setTranslateY(140); // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس Group root = new Group(); // root هنا قمنا بإضافة جميع الأشياء في الكائن root.getChildren().add(label); root.getChildren().add(passwordField); root.getChildren().add(statusLabel); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("JavaFX PasswordField"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); // passwordField هنا قمنا بتحديد ماذا سيحدث كلما تم إدخال أو مسح حرف في الـ passwordField.setOnKeyTyped((KeyEvent e) -> { // statusLabel يساوي 0 سيتم إزالة أي نص موضوع في الـ passwordField إذا كان عدد أحرف الـ if( passwordField.getText().length() == 0 ) { statusLabel.setText(""); } // مع تلوينه بالأحمر statusLabel أصغر من 8 سيتم تبديل نص الـ passwordField إذا كان عدد أحرف الـ else if( passwordField.getText().length() < 8 ) { statusLabel.setTextFill(Color.RED); statusLabel.setText("Weak Password!"); } // مع تلوينه بالأخضر statusLabel أكبر من 8 سيتم تبديل نص الـ passwordField إذا كان عدد أحرف الـ else { statusLabel.setTextFill(Color.GREEN); statusLabel.setText("Strong Password!"); } }); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }
ستظهر لك النافذة التالية عند التشغيل.