شرح الكلاس PasswordField في javafx

شرح  الكلاس PasswordField

الكلاس PasswordField يستخدم لإضافة مربع نص خاص لإدخال كلمات المرور ( Password Field ) في واجهة المستخدم, حيث أنه يقوم بإخفاء الأحرف التي يكتبها المستخدم.


بناء الكلاس PasswordField

public class PasswordField
extends TextField
	

كونستركتورات الكلاس PasswordField

الجدول التالي يحتوي على كونستركتورات الكلاس PasswordField.

الكونستركتور مع تعريفه
public PasswordField() ينشئ كائن من الكلاس PasswordField يمثل مربع نص فارغ خاص لإدخال كلمات المرور.

دوال الكلاس PasswordField

الجدول التالي يحتوي على دوال الكلاس PasswordField الأكثر إستخداماً.

الدالة مع تعريفها
public String getText() ترجع نص كائن الـ PasswordField الذي قام بإستدعائها كنص.
public void setText(String text) تستخدم لتبديل نص كائن الـ PasswordField الذي قام بإستدعائها.
مكان الباراميتر text نضع النص الجديد.
public final void setTranslateX(double value) تستخدم لتحديد مكان الـ PasswordField الذي قام باستدعائها أفقياً.
مكان الباراميتر value نضع رقم يمثل كم Pixel سيتم إزاحته من اليسار إلى اليمين.
public final void setTranslateY(double value) تستخدم لتحديد مكان الـ PasswordField الذي قام باستدعائها عامودياً.
مكان الباراميتر value نضع رقم يمثل كم Pixel سيتم إزاحته من الأعلى إلى الأسفل.
public void setPrefSize(double prefWidth, double prefHeight) تستخدم لتحديد حجم الـ PasswordField الذي قام باستدعائها.
  • مكان الباراميتر prefWidth نضع رقم يمثل عرض الـ PasswordField بالـ Pixel.

  • مكان الباراميتر prefHeight نضع رقم يمثل طول الـ PasswordField بالـ Pixel.

public final void setDisable(boolean value) تستخدم لجعل نص كائن الـ PasswordField الذي قام باستدعائها يبدو غير مفعّل, أي يصبح لونه باهتاً و غير قابل لتغير النص الموجود بداخله.
مكان الباراميتر value نضع القيمة true لجعله غير مفعّل.
public final void setStyle(String value) تستخدم لتعديل تصميم الـ PasswordField الذي قام بإستدعائها.
مكان الباراميتر value يمكنك تمرير إسم و قيمة أي خاصية تريد تعديلها في كائن الـ PasswordField بأسلوب لغة CSS لإظهاره بالشكل الذي تريده.

أمثلة شاملة في   الكلاس PasswordField

 طريقة إنشاء كائن من الكلاس PasswordField و إضافته في النافذة

المثال التالي يعلمك طريقة إنشاء كائن من الكلاس PasswordField و إضافته في النافذة.

مثال

Main.java
      import javafx.application.Application;
      import javafx.scene.Group;
      import javafx.scene.Scene;
      import javafx.scene.control.PasswordField;
      import javafx.stage.Stage;

      public class Main extends Application {

      @Override
      public void start(Stage stage) {

      // يمثل مربع النص الخاص لإدخال كلمة المرور الذي نريد إضافته في النافذة PasswordField هنا قمنا بإنشاء كائن من الكلاس
      PasswordField passwordField = new PasswordField();

      // في النافذة passwordField هنا قمنا بتحديد مكان ظهور الكائن
      passwordField.setTranslateX(100);
      passwordField.setTranslateY(110);

      // passwordField هنا قمنا بتحديد عرض الـ
      passwordField.setPrefWidth(200);

      // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
      Group root = new Group();

      // root في الكائن passwordField هنا قمنا بإضافة الكائن
      root.getChildren().add(passwordField);

      // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
      Scene scene = new Scene(root, 400, 250);

      // هنا وضعنا عنوان للنافذة
      stage.setTitle("JavaFX PasswordField");

      // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
      stage.setScene(scene);

      // هنا قمنا بإظهار النافذة
      stage.show();

      }

      // هنا قمنا بتشغيل التطبيق
      public static void main(String[] args) {
      launch(args);
      }

      }
    

ستظهر لك النافذة التالية عند التشغيل.

طريقة إضافة PasswordField في javafx




 طريقة الحصول على النص المدخل في PasswordField عند النقر على Button

المثال التالي يعلمك طريقة الحصول على النص المدخل في PasswordField عند النقر على Button.

مثال

Main.java
      import javafx.application.Application;
      import javafx.event.ActionEvent;
      import javafx.scene.Group;
      import javafx.scene.Scene;
      import javafx.scene.control.Button;
      import javafx.scene.control.Label;
      import javafx.scene.control.PasswordField;
      import javafx.stage.Stage;

      public class Main extends Application {

      @Override
      public void start(Stage stage) {

      // هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة
      Label label_1 = new Label("Password");
      PasswordField passwordField = new PasswordField();
      Button button = new Button("Get Text");
      Label label_2 = new Label();

      // هنا قمنا بتحديد مكان ظهور الأشياء التي سنضيفها في النافذة
      label_1.setTranslateX(90);
      label_1.setTranslateY(83);
      passwordField.setTranslateX(160);
      passwordField.setTranslateY(80);
      button.setTranslateX(88);
      button.setTranslateY(157);
      label_2.setTranslateX(160);
      label_2.setTranslateY(160);

      // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس
      Group root = new Group();

      // root هنا قمنا بإضافة جميع الأشياء في الكائن
      root.getChildren().add(label_1);
      root.getChildren().add(passwordField);
      root.getChildren().add(button);
      root.getChildren().add(label_2);

      // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
      Scene scene = new Scene(root, 400, 250);

      // هنا وضعنا عنوان للنافذة
      stage.setTitle("JavaFX PasswordField");

      // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
      stage.setScene(scene);

      // هنا قمنا بإظهار النافذة
      stage.show();

      // button هنا قمنا بتحديد ماذا سيحدث عند النقر على الكائن
      button.setOnAction((ActionEvent e) -> {
      // label_2 و وضعه كنص للـ passwordField عند النقر على الزر سيتم جلب نص الـ
      label_2.setText(passwordField.getText());
      });

      }

      // هنا قمنا بتشغيل التطبيق
      public static void main(String[] args) {
      launch(args);
      }

      }
    

ستظهر لك النافذة التالية عند التشغيل.

طريقة الحصول على النص المدخل في الـ PasswordField عند النقر على زر في javafx




 طريقة التشييك على النص الذي يتم إدخاله في PasswordField

المثال التالي يعلمك طريقة التشييك على النص الذي يتم إدخاله في PasswordField.

مثال

Main.java
      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);
      }

      }
    

ستظهر لك النافذة التالية عند التشغيل.

طريقة التشييك على النص الذي يتم إدخاله في الـ PasswordField في javafx