شرح الكلاس TextArea
الكلاس TextArea
يستخدم لإضافة مربع نص كبير يتألف من أكثر من سطر ( Text Area ) في واجهة المستخدم.
بناء الكلاس TextArea
public class TextArea extends TextInputControl
كونستركتورات الكلاس TextArea
الجدول التالي يحتوي على كونستركتورات الكلاس TextArea
.
الكونستركتور مع تعريفه | |
---|---|
public TextArea()
ينشئ كائن من الكلاس TextArea يمثل مربع نص فارغ. |
|
public TextArea(String text)
ينشئ كائن من الكلاس TextArea يمثل مربع نص فيه نص.مكان الباراميتر text نمرر النص الذي نريد وضعه بداخل الـ TextArea . |
دوال الكلاس TextArea
الجدول التالي يحتوي على دوال الكلاس TextArea
الأكثر إستخداماً.
الدالة مع تعريفها | |
---|---|
public String getText()
ترجع نص كائن الـ TextArea الذي قام بإستدعائها كنص. |
|
public void setText(String text)
تستخدم لتبديل نص كائن الـ TextArea الذي قام بإستدعائها.مكان الباراميتر text نضع النص الجديد. |
|
public final void setFont(Font newFont)
تستخدم لتحديد حجم و نوع خط كائن الـ TextArea الذي قام بإستدعائها.مكان الباراميتر newFont نضع كائن من الكلاس Font يمثل خصائص الخط الجديد. |
|
public final void setPadding(Insets value)
تستخدم لإضافة هامش ( مسافة فارغة ) حول نص كائن الـ TextArea الذي قام باستدعائها.مكان الباراميتر value نضع كائن من الكلاس Insets يمثل حجم الهامش حول النص من كل الجهات. |
|
public final void setTranslateX(double value)
تستخدم لتحديد مكان الـ TextArea الذي قام باستدعائها أفقياً.مكان الباراميتر value نضع رقم يمثل كم Pixel سيتم إزاحته من اليسار إلى اليمين. |
|
public final void setTranslateY(double value)
تستخدم لتحديد مكان الـ TextArea الذي قام باستدعائها عامودياً.مكان الباراميتر value نضع رقم يمثل كم Pixel سيتم إزاحته من الأعلى إلى الأسفل. |
|
public void setPrefSize(double prefWidth, double prefHeight)
تستخدم لتحديد حجم الـ TextArea الذي قام باستدعائها.
|
|
public final void setDisable(boolean value)
تستخدم لجعل نص كائن الـ TextArea الذي قام باستدعائها يبدو غير مفعّل, أي يصبح لونه باهتاً و غير قابل لتغير النص الموجود بداخله.مكان الباراميتر value نضع القيمة true لجعله غير مفعّل. |
|
public final void setStyle(String value)
تستخدم لتعديل تصميم الـ TextArea الذي قام بإستدعائها.مكان الباراميتر value يمكنك تمرير إسم و قيمة أي خاصية تريد تعديلها في كائن الـ TextArea بأسلوب لغة CSS لإظهاره بالشكل الذي تريده. |
أمثلة شاملة في الكلاس TextArea
طريقة إضافة TextArea في javafx
المثال التالي يعلمك طريقة إضافة TextArea في javafx .
مثال
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.TextArea; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { // يمثل مربع النص الذي نريد إضافته في النافذة TextArea هنا قمنا بإنشاء كائن من الكلاس TextArea textArea = new TextArea(); // في النافذة textArea هنا قمنا بتحديد مكان ظهور الكائن textArea.setTranslateX(100); textArea.setTranslateY(70); // عرضه 200 بيكسل و طوله 100 بيكسل textArea هنا قمنا بتحديد حجم الـ textArea.setPrefSize(200, 100); // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس Group root = new Group(); // root في الكائن textArea هنا قمنا بإضافة الكائن root.getChildren().add(textArea); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("JavaFX TextArea"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }
•ستظهر لك النافذة التالية عند التشغيل.
طريقة تغيير نوع و حجم خط الـ TextArea
المثال التالي يعلمك طريقة تغيير نوع و حجم خط الـ TextArea
.
مثال
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.TextArea; import javafx.scene.text.Font; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { // يمثل مربع النص الذي نريد إضافته في النافذة TextArea هنا قمنا بإنشاء كائن من الكلاس TextArea textArea = new TextArea(); // في النافذة textArea هنا قمنا بتحديد مكان ظهور الكائن textArea.setTranslateX(100); textArea.setTranslateY(70); // عرضه 200 بيكسل و طوله 100 بيكسل textArea هنا قمنا بتحديد حجم الـ textArea.setPrefSize(200, 100); // textArea هنا قمنا بتغيير نوع و حجم خط الكائن textArea.setFont(new Font("Arial", 20)); // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس Group root = new Group(); // root في الكائن textArea هنا قمنا بإضافة الكائن root.getChildren().add(textArea); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("JavaFX TextArea"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }
•ستظهر لك النافذة التالية عند التشغيل.
طريقة جعل النص بداخل الـ TextArea
ينزل على سطر جديد بشكل تلقائي
المثال التالي يعلمك طريقة جعل النص بداخل الـ TextArea
ينزل على سطر جديد بشكل تلقائي على سطر جديد بدل إظهار ScrollBar
بالعرض.
مثال
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.TextArea; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { // يمثل مربع النص الذي نريد إضافته في النافذة TextArea هنا قمنا بإنشاء كائن من الكلاس TextArea textArea = new TextArea(); // في النافذة textArea هنا قمنا بتحديد مكان ظهور الكائن textArea.setTranslateX(100); textArea.setTranslateY(70); // عرضه 200 بيكسل و طوله 100 بيكسل textArea هنا قمنا بتحديد حجم الـ textArea.setPrefSize(200, 100); // بالعرض Scroll Bar ينزل على سطر جديد عند الحاجة بدل إظهار TextArea هنا جعلنا النس بداخل الـ textArea.setWrapText(true); // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس Group root = new Group(); // root في الكائن textArea هنا قمنا بإضافة الكائن root.getChildren().add(textArea); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("JavaFX TextArea"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }
•ستظهر لك النافذة التالية عند التشغيل.
طريقة الحصول على النص المدخل في الـ TextArea
المثال التالي يعلمك طريقة الحصول على النص المدخل في الـ TextArea
.
مثال
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.TextArea; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { // هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة Label nameLabel = new Label("Enter your address"); TextArea textArea = new TextArea(); Button button = new Button("Get address"); Label resultLabel = new Label(); // هنا قمنا بتحديد مكان ظهور الأشياء التي سنضيفها في النافذة nameLabel.setTranslateX(50); nameLabel.setTranslateY(73); textArea.setTranslateX(170); textArea.setTranslateY(70); button.setTranslateX(50); button.setTranslateY(157); resultLabel.setTranslateX(170); resultLabel.setTranslateY(160); // resultLabel و الـ button و الـ textArea هنا قمنا بتحديد حجم الـ textArea.setPrefSize(170, 60); button.setPrefSize(100, 25); resultLabel.setPrefWidth(170); // يظهر على سطر جديد بشكل تلقائي عند الحاجة resultLabel و الـ TextArea هنا جعلنا محتوى الـ resultLabel.setWrapText(true); textArea.setWrapText(true); // كلما كان فارغاّ textArea هنا قمنا بتحديد نص الإرشاد الذي سيظهر بداخل الـ textArea.setPromptText("Street, and Apt. No.\n city, State, and ZIP+4"); textArea.setFocusTraversable(false); // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس Group root = new Group(); // root هنا قمنا بإضافة جميع الأشياء في الكائن root.getChildren().add(nameLabel); root.getChildren().add(textArea); root.getChildren().add(button); root.getChildren().add(resultLabel); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("JavaFX TextArea"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); // button هنا قمنا بتحديد ماذا سيحدث عند النقر على الكائن button.setOnAction((ActionEvent e) -> { // resultLabel و وضعه كنص للـ textArea عند النقر على الزر سيتم جلب نص الـ resultLabel.setText(textArea.getText()); }); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }
•ستظهر لك النافذة التالية عند التشغيل.
طريقة الحصول على عدد الأسطر و الأحرف الموجودة في TextArea
المثال التالي يعلمك طريقة الحصول على عدد الأسطر و الأحرف الموجودة في TextArea
.
المثال عبارة واجهة مستخدم فيها TextArea
و إثنين Label
.
كلما تم إدخال أو حذف حرف في الـ TextArea
سيتم إظهار عدد الأسطر الحالية في Label
و عدد الأحرف الحالية في Label
آخر.
مثال
import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.TextArea; import javafx.scene.input.KeyEvent; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage stage) { // هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في النافذة TextArea textArea = new TextArea(); Label rowsLabel = new Label("Rows: 0"); Label charsLabel = new Label("Characters: 0"); // هنا قمنا بتحديد مكان ظهور الأشياء التي سنضيفها في النافذة textArea.setTranslateX(20); textArea.setTranslateY(25); rowsLabel.setTranslateX(300); rowsLabel.setTranslateY(25); charsLabel.setTranslateX(300); charsLabel.setTranslateY(50); // textArea هنا قمنا بتحديد حجم الـ textArea.setPrefSize(260, 200); // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس Group root = new Group(); // root هنا قمنا بإضافة جميع الأشياء في الكائن root.getChildren().add(textArea); root.getChildren().add(rowsLabel); root.getChildren().add(charsLabel); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("JavaFX TextArea"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); // textArea هنا قمنا بتحديد ماذا سيحدث عند إضافة أو حذف أي حرف في الـ textArea.setOnKeyReleased((KeyEvent e) -> { // charsLabel كنص للكائن textArea هنا وضعنا عدد أحرف الـ charsLabel.setText("Characters: " + textArea.getText().length()); // rowsLabel فارغ سيتم إعتبار عدد الأسطر الموجودة فيه يساوي 0 و سيتم وضع ذلك كنص للكائن textArea إذا كان الـ if (textArea.getText().equals("")) { rowsLabel.setText("Rows: 0"); } // rowsLabel فارغاً, سيتم جلب عدد الأسطر الموجودة فيه و وضعها كنص للكائن textArea إذا لم يكن الـ else { rowsLabel.setText("Rows: " + textArea.getText().split("\n").length); } }); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }
•ستظهر لك النافذة التالية عند التشغيل.