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 {
@Override
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);
}
}
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 {
@Override
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);
}
}
ستظهر لك النافذة التالية عند التشغيل.