JavaFXطريقة حساب عدد الأحرف و الأسطر المدخلة في 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);
}
}
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);
}
}
ستظهر لك النافذة التالية عند التشغيل.