JavaFXطريقة إظهار الشيء الموضوع في GridPane على أكثر من سطر أو عامود
المثال التالي يعلمك طريقة إظهار الشيء الموضوع في GridPane على أكثر من سطر أو عامود.
مثال
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Priority;
public class Main extends Application {
@Override
public void start(Stage stage) {
// في النافذة Root Node و الذي ننوي جعله الـ GridPane هنا قمنا بإنشاء كائن من الكلاس
GridPane root = new GridPane();
// تظهر في وسطه root هنا جعلنا الأشياء التي نضيفها في الكائن
root.setAlignment(Pos.CENTER);
// و النافذة نفسها root هنا قمنا بإضافة هامش بمقدار 5 بيكسل بين الكائن
root.setPadding(new Insets(5));
// root هنا قمنا بإضافة هامش بمقدار 10 بيكسل أفقياً بين كل شيئين يتم إضافتهما في الكائن
root.setHgap(10);
// root هنا قمنا بإضافة هامش بمقدار 10 بيكسل عامودياً بين كل شيئين يتم إضافتهما في الكائن
root.setVgap(10);
// root هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في الكائن
Button button1 = new Button("Button 1");
Button button2 = new Button("Button 2");
Button button3 = new Button("Button 3");
Button button4 = new Button("Button 4");
// و هو كل المساحة المتوفرة بالطول و العرض button4 و button3 ,button2 ,button1 هنا قمنا بجعل الحجم الأقصى للكائنات
button1.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
button2.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
button3.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
button4.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
// يكبر لأقصى حدود ممكنة button4 و button3 ,button2 ,button1 هنا جعلنا طول الكائنات
GridPane.setVgrow(button1, Priority.ALWAYS);
GridPane.setVgrow(button2, Priority.ALWAYS);
GridPane.setVgrow(button3, Priority.ALWAYS);
GridPane.setVgrow(button4, Priority.ALWAYS);
// يكبر لأقصى حدود ممكنة button4 ,button3 ,button2 ,button1 هنا جعلنا عرض الكائنات
GridPane.setHgrow(button1, Priority.ALWAYS);
GridPane.setHgrow(button2, Priority.ALWAYS);
GridPane.setHgrow(button3, Priority.ALWAYS);
GridPane.setHgrow(button4, Priority.ALWAYS);
// root في العامود الأول من السطر الأول button2 هنا قمنا بإضافة الكائن
root.add(button1, 0, 0);
// يظهر على عامودين button1 هنا جعلنا الكائن
GridPane.setRowSpan(button1, 2);
// root في العامود الثاني من السطر الأول button2 هنا قمنا بإضافة الكائن
root.add(button2, 1, 0);
// يظهر على سطرين button2 هنا جعلنا الكائن
GridPane.setColumnSpan(button2, 2);
// root في العامود الثاني من السطر الثاني button3 هنا قمنا بإضافة الكائن
root.add(button3, 1, 1);
// root في العامود الثالث من السطر الثاني button4 هنا قمنا بإضافة الكائن
root.add(button4, 2, 1);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 350, 250);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX GridPane");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Priority;
public class Main extends Application {
@Override
public void start(Stage stage) {
// في النافذة Root Node و الذي ننوي جعله الـ GridPane هنا قمنا بإنشاء كائن من الكلاس
GridPane root = new GridPane();
// تظهر في وسطه root هنا جعلنا الأشياء التي نضيفها في الكائن
root.setAlignment(Pos.CENTER);
// و النافذة نفسها root هنا قمنا بإضافة هامش بمقدار 5 بيكسل بين الكائن
root.setPadding(new Insets(5));
// root هنا قمنا بإضافة هامش بمقدار 10 بيكسل أفقياً بين كل شيئين يتم إضافتهما في الكائن
root.setHgap(10);
// root هنا قمنا بإضافة هامش بمقدار 10 بيكسل عامودياً بين كل شيئين يتم إضافتهما في الكائن
root.setVgap(10);
// root هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في الكائن
Button button1 = new Button("Button 1");
Button button2 = new Button("Button 2");
Button button3 = new Button("Button 3");
Button button4 = new Button("Button 4");
// و هو كل المساحة المتوفرة بالطول و العرض button4 و button3 ,button2 ,button1 هنا قمنا بجعل الحجم الأقصى للكائنات
button1.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
button2.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
button3.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
button4.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
// يكبر لأقصى حدود ممكنة button4 و button3 ,button2 ,button1 هنا جعلنا طول الكائنات
GridPane.setVgrow(button1, Priority.ALWAYS);
GridPane.setVgrow(button2, Priority.ALWAYS);
GridPane.setVgrow(button3, Priority.ALWAYS);
GridPane.setVgrow(button4, Priority.ALWAYS);
// يكبر لأقصى حدود ممكنة button4 ,button3 ,button2 ,button1 هنا جعلنا عرض الكائنات
GridPane.setHgrow(button1, Priority.ALWAYS);
GridPane.setHgrow(button2, Priority.ALWAYS);
GridPane.setHgrow(button3, Priority.ALWAYS);
GridPane.setHgrow(button4, Priority.ALWAYS);
// root في العامود الأول من السطر الأول button2 هنا قمنا بإضافة الكائن
root.add(button1, 0, 0);
// يظهر على عامودين button1 هنا جعلنا الكائن
GridPane.setRowSpan(button1, 2);
// root في العامود الثاني من السطر الأول button2 هنا قمنا بإضافة الكائن
root.add(button2, 1, 0);
// يظهر على سطرين button2 هنا جعلنا الكائن
GridPane.setColumnSpan(button2, 2);
// root في العامود الثاني من السطر الثاني button3 هنا قمنا بإضافة الكائن
root.add(button3, 1, 1);
// root في العامود الثالث من السطر الثاني button4 هنا قمنا بإضافة الكائن
root.add(button4, 2, 1);
// فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
Scene scene = new Scene(root, 350, 250);
// هنا وضعنا عنوان للنافذة
stage.setTitle("JavaFX GridPane");
// أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
stage.setScene(scene);
// هنا قمنا بإظهار النافذة
stage.show();
}
// هنا قمنا بتشغيل التطبيق
public static void main(String[] args) {
launch(args);
}
}
ستظهر لك النافذة التالية عند التشغيل.