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


