شرح الكلاس 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 الذي قام باستدعائها.
|
|
public final void setDisable(boolean value)
تستخدم لجعل نص كائن الـ PasswordField الذي قام باستدعائها يبدو غير مفعّل, أي يصبح لونه باهتاً و غير قابل لتغير النص الموجود بداخله.مكان الباراميتر value نضع القيمة true لجعله غير مفعّل. |
|
public final void setStyle(String value)
تستخدم لتعديل تصميم الـ PasswordField الذي قام بإستدعائها.مكان الباراميتر value يمكنك تمرير إسم و قيمة أي خاصية تريد تعديلها في كائن الـ PasswordField بأسلوب لغة CSS لإظهاره بالشكل الذي تريده. |
أمثلة شاملة في الكلاس PasswordField
طريقة إنشاء كائن من الكلاس PasswordField
و إضافته في النافذة
المثال التالي يعلمك طريقة إنشاء كائن من الكلاس PasswordField
و إضافته في النافذة.
مثال
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
عند النقر على Button
المثال التالي يعلمك طريقة الحصول على النص المدخل في PasswordField
عند النقر على Button
.
مثال
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
المثال التالي يعلمك طريقة التشييك على النص الذي يتم إدخاله في 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); } }
•ستظهر لك النافذة التالية عند التشغيل.