شرح الكلاس BorderPane في javafx

شرح الكلاس  BorderPane

الكلاس BorderPane يستخدم لإنشاء حاوية تتألف من 5 أقسام ( شمال, الجنوب, الشرق, الغرب أو الوسط ).

في كل قسم في الـ BorderPane يمكنك وضع شيء واحد فقط و يمكنك عدم وضع شيء أيضاً.

حجم كائن الـBorderPane يمكن تحديده, و يمكن تحديد ما إذا كانت الأشياء بداخله سيتغير حجمها مع تغيّر حجمه أم أن حجمها ثابت لا يتغير.

حجم الفراغ بين الأشياء التي نضيفها فيه يمكن تحديده من جميع الإتجاهات.


بناء الكلاس BorderPane

public class BorderPane
extends Pane
	

كونستركتورات الكلاس BorderPane

الجدول التالي يحتوي على كونستركتورات الكلاس BorderPane.

الكونستركتور مع تعريفه
BorderPane() ينشئ كائن من الكلاس BorderPane يمثل حاوية فارغة تتألف من 5 أقسام ( شمال, الجنوب, الشرق, الغرب أو الوسط ).
BorderPane(Node center) ينشئ كائن من الكلاس BorderPane يمثل حاوية تتألف من 5 أقسام ( شمال, الجنوب, الشرق, الغرب أو الوسط ) مع تحديد الشيء الذي سيظهر في وسطها. مكان الباراميتر center نمرر الشيء الذي نريد وضعه في وسطها.
BorderPane(Node center, Node top, Node right, Node bottom, Node left) ينشئ كائن من الكلاس BorderPane يمثل حاوية تتألف من 5 أقسام ( شمال, الجنوب, الشرق, الغرب أو الوسط ) مع تحديد الأشياء التي سيتم وضعها في كل قسم.
  • مكان الباراميتر center نمرر الشيء الذي نريد وضعه في القسم الذي يقع في الوسط.

  • مكان الباراميتر top نمرر الشيء الذي نريد وضعه في القسم الأعلى.

  • مكان الباراميتر right نمرر الشيء الذي نريد وضعه في القسم الأيمن.

  • مكان الباراميتر bottom نمرر الشيء الذي نريد وضعه في القسم الأسفل.

  • مكان الباراميتر left نمرر الشيء الذي نريد وضعه في القسم الأيسر.

دوال الكلاس BorderPane

الجدول التالي يحتوي على دوال الكلاس BorderPane الأكثر إستخداماً.

الدالة مع تعريفها
public final void setCenter(Node value) تستخدم لوضع الشيء الذي نمرره لها مكان الكائن value في وسط كائن الـ BorderPane الذي قام باستدعائها.
public final void setTop(Node value) تستخدم لوضع الشيء الذي نمرره لها مكان الكائن value في القسم الأيمن في كائن الـ BorderPane الذي قام باستدعائها.
public final void setBottom(Node value) تستخدم لوضع الشيء الذي نمرره لها مكان الكائن value في القسم الأعلى في كائن الـ BorderPane الذي قام باستدعائها.
public final void setRight(Node value) تستخدم لوضع الشيء الذي نمرره لها مكان الكائن value في القسم الأيمن في كائن الـ BorderPane الذي قام باستدعائها.
public final void setLeft(Node value) تستخدم لوضع الشيء الذي نمرره لها مكان الكائن value في القسم الأيسر في كائن الـ BorderPane الذي قام باستدعائها.
public final void setPadding(Insets value) تستخدم لإضافة فراغ حول كائن الـ BorderPane الذي قام باستدعائها.

مكان الباراميتر value نمرر كائن من الكلاس Insets نحدد فيه حجم الفراغ الذي سيتم إضافته من الجهات الأربعة ( فوقه, يمينه, تحته, يساره ).
public static void setMargin(Node child, Insets value) تستخدم لإضافة فراغ حول أي شيء موضوع كقسم بداخل BorderPane.
مكان الباراميتر child نمرر الشيء الذي نريد إضافة فراغ حوله.
مكان الباراميتر value نمرر كائن من الكلاس Insets نحدد فيه حجم الفراغ الذي سيتم إضافته للشيء من الجهات الأربعة ( فوقه, يمينه, تحته, يساره ).
public final void setStyle(String value) تستخدم لتعديل تصميم كائن الـ BorderPane الذي قام بإستدعائها.
مكان الباراميتر value يمكنك تمرير إسم و قيمة أي خاصية تريد تعديلها في كائن الـ BorderPane بأسلوب لغة CSS لإظهاره بالشكل الذي تريده.
public ObservableList<Node> getChildren() ترجع كائن نوعه ObservableList يمثل محتوى كائن الـ BorderPane الذي قام بإستدعائها مما يجعلك قادراً على إضافة كائنات جديدة أو حذف كائنات موجودة فيه.

أمثلة شاملة في الكلاس  BorderPane


 طريقة إنشاء كائن من الكلاس BorderPane

المثال التالي يعلمك طريقة إنشاء كائن من الكلاس BorderPane و وضعه كـ Root Node.

مثال

Main.java
      import javafx.application.Application;
      import javafx.scene.Scene;
      import javafx.stage.Stage;
      import javafx.scene.control.Button;
      import javafx.scene.layout.BorderPane;

      public class Main extends Application {

      @Override
      public void start(Stage stage) {

      // في النافذة Root Node و الذي ننوي جعله الـ BorderPane هنا قمنا بإنشاء كائن من الكلاس
      BorderPane root = new BorderPane();

      // root هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في الكائن
      Button buttonCenter = new Button("Center");
      Button buttonTop    = new Button("Top");
      Button buttonRight  = new Button("Right");
      Button buttonBottom = new Button("Bottom");
      Button buttonLeft   = new Button("Left");

      // root هنا قمنا بتحديد موقع كل شيء سيتم إضافته في الكائن
      root.setCenter(buttonCenter);
      root.setTop(buttonTop);
      root.setRight(buttonRight);
      root.setBottom(buttonBottom);
      root.setLeft(buttonLeft);

      // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
      Scene scene = new Scene(root, 350, 250);

      // هنا وضعنا عنوان للنافذة
      stage.setTitle("JavaFX BorderPane");

      // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
      stage.setScene(scene);

      // هنا قمنا بإظهار النافذة
      stage.show();

      }

      // هنا قمنا بتشغيل التطبيق
      public static void main(String[] args) {
      launch(args);
      }

      }
    

ستظهر لك النافذة التالية عند التشغيل.

طريقة إنشاء كائن من الكلاس BorderPane


 طريقة جعل محتوى ال BorderPane يظهر على كل المساحة المتوفرة فيه في JavaFX

المثال التالي يعلمك طريقة جعل محتوى الـ BorderPane يظهر على كل المساحة المتوفرة.

مثال

Main.java
      import javafx.application.Application;
      import javafx.scene.Scene;
      import javafx.stage.Stage;
      import javafx.scene.control.Button;
      import javafx.scene.layout.BorderPane;

      public class Main extends Application {

      @Override
      public void start(Stage stage) {

      // في النافذة Root Node و الذي ننوي جعله الـ BorderPane هنا قمنا بإنشاء كائن من الكلاس
      BorderPane root = new BorderPane();

      // root هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في الكائن
      Button buttonCenter = new Button("Center");
      Button buttonTop    = new Button("Top");
      Button buttonRight  = new Button("Right");
      Button buttonBottom = new Button("Bottom");
      Button buttonLeft   = new Button("Left");

      // root هنا قمنا بتحديد موقع كل شيء سيتم إضافته في الكائن
      root.setCenter(buttonCenter);
      root.setTop(buttonTop);
      root.setRight(buttonRight);
      root.setBottom(buttonBottom);
      root.setLeft(buttonLeft);

      // الذي سيتم عرضه في وسط النافذة يظهر على كل المساحة المتوفرة buttonCenter هنا قمنا بجعل الكائن
      buttonCenter.setPrefSize(Double.MAX_VALUE, Double.MAX_VALUE);

      // الذي سيتم عرضه في أعلى النافذة يظهر على كل المساحة المتوفرة بالعرض buttonTop هنا قمنا بجعل الكائن
      buttonTop.setPrefWidth(Double.MAX_VALUE);

      // الذي سيتم عرضه في يمين النافذة يظهر على كل المساحة المتوفرة بالطول buttonRight هنا قمنا بجعل الكائن
      buttonRight.setPrefHeight(Double.MAX_VALUE);

      // الذي سيتم عرضه في أسفل النافذة يظهر على كل المساحة المتوفرة بالعرض buttonBottom هنا قمنا بجعل الكائن
      buttonBottom.setPrefWidth(Double.MAX_VALUE);

      // الذي سيتم عرضه في يسار النافذة يظهر على كل المساحة المتوفرة بالطول buttonLeft هنا قمنا بجعل الكائن
      buttonLeft.setPrefHeight(Double.MAX_VALUE);

      // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
      Scene scene = new Scene(root, 350, 250);

      // هنا وضعنا عنوان للنافذة
      stage.setTitle("JavaFX BorderPane");

      // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
      stage.setScene(scene);

      // هنا قمنا بإظهار النافذة
      stage.show();

      }

      // هنا قمنا بتشغيل التطبيق
      public static void main(String[] args) {
      launch(args);
      }

      }
    

ستظهر لك النافذة التالية عند التشغيل.

طريقة جعل محتوى ال BorderPane يظهر على كل المساحة المتوفرة فيه في JavaFX

ببطئ قم بتكبير حجم النافذة و تصغيرها بواسطة الفأرة لتفهم أكثر كيف تم ترتيب العناصر.



 طريقة إضافة هامش حول ال BorderPane في JavaFX

المثال التالي يعلمك طريقة إضافة مسافة فارغة ( هامش ) حول الـ BorderPane حتى لا يلامس النافذة.

مثال

Main.java
      import javafx.application.Application;
      import javafx.geometry.Insets;
      import javafx.scene.Scene;
      import javafx.stage.Stage;
      import javafx.scene.control.Button;
      import javafx.scene.layout.BorderPane;

      public class Main extends Application {

      @Override
      public void start(Stage stage) {

      // في النافذة Root Node و الذي ننوي جعله الـ BorderPane هنا قمنا بإنشاء كائن من الكلاس
      BorderPane root = new BorderPane();

      // root هنا قمنا بإضافة مسافة فارغة ( هامش ) بمقدار 10 بيكسل حول الكائن
      root.setPadding(new Insets(10));

      // root هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في الكائن
      Button buttonCenter = new Button("Center");
      Button buttonTop    = new Button("Top");
      Button buttonRight  = new Button("Right");
      Button buttonBottom = new Button("Bottom");
      Button buttonLeft   = new Button("Left");

      // root هنا قمنا بتحديد موقع كل شيء سيتم إضافته في الكائن
      root.setCenter(buttonCenter);
      root.setTop(buttonTop);
      root.setRight(buttonRight);
      root.setBottom(buttonBottom);
      root.setLeft(buttonLeft);

      // الذي سيتم عرضه في وسط النافذة يظهر على كل المساحة المتوفرة buttonCenter هنا قمنا بجعل الكائن
      buttonCenter.setPrefSize(Double.MAX_VALUE, Double.MAX_VALUE);

      // الذي سيتم عرضه في أعلى النافذة يظهر على كل المساحة المتوفرة بالعرض buttonTop هنا قمنا بجعل الكائن
      buttonTop.setPrefWidth(Double.MAX_VALUE);

      // الذي سيتم عرضه في يمين النافذة يظهر على كل المساحة المتوفرة بالطول buttonRight هنا قمنا بجعل الكائن
      buttonRight.setPrefHeight(Double.MAX_VALUE);

      // الذي سيتم عرضه في أسفل النافذة يظهر على كل المساحة المتوفرة بالعرض buttonBottom هنا قمنا بجعل الكائن
      buttonBottom.setPrefWidth(Double.MAX_VALUE);

      // الذي سيتم عرضه في يسار النافذة يظهر على كل المساحة المتوفرة بالطول buttonLeft هنا قمنا بجعل الكائن
      buttonLeft.setPrefHeight(Double.MAX_VALUE);

      // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
      Scene scene = new Scene(root, 350, 250);

      // هنا وضعنا عنوان للنافذة
      stage.setTitle("JavaFX BorderPane");

      // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
      stage.setScene(scene);

      // هنا قمنا بإظهار النافذة
      stage.show();

      }

      // هنا قمنا بتشغيل التطبيق
      public static void main(String[] args) {
      launch(args);
      }

      }
    

ستظهر لك النافذة التالية عند التشغيل.

طريقة إضافة هامش حول ال BorderPane في JavaFX

ببطئ قم بتكبير حجم النافذة و تصغيرها بواسطة الفأرة لتفهم أكثر كيف ستتغير أحجام الأشياء التي وضعناها في الـ BorderPane.



 طريقة إضافة هامش من جميع الإتجاهات لأي شيء تم وضعه في BorderPane في JavaFX

المثال التالي يعلمك طريقة إضافة مسافة فارغة ( هامش ) من جميع الإتجاهات حول أي شيء تم وضعه في BorderPane.

مثال

Main.java
      import javafx.application.Application;
      import javafx.geometry.Insets;
      import javafx.scene.Scene;
      import javafx.stage.Stage;
      import javafx.scene.control.Button;
      import javafx.scene.layout.BorderPane;

      public class Main extends Application {

      @Override
      public void start(Stage stage) {

      // في النافذة Root Node و الذي ننوي جعله الـ BorderPane هنا قمنا بإنشاء كائن من الكلاس
      BorderPane root = new BorderPane();

      // root هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في الكائن
      Button buttonCenter = new Button("Center");
      Button buttonTop    = new Button("Top");
      Button buttonRight  = new Button("Right");
      Button buttonBottom = new Button("Bottom");
      Button buttonLeft   = new Button("Left");

      // root هنا قمنا بتحديد موقع كل شيء سيتم إضافته في الكائن
      root.setCenter(buttonCenter);
      root.setTop(buttonTop);
      root.setRight(buttonRight);
      root.setBottom(buttonBottom);
      root.setLeft(buttonLeft);

      // من الأسفل فقط buttonTop هنا أضفنا هامش بمقدار 10 بيكسل حول الكائن
      BorderPane.setMargin(buttonTop, new Insets(0, 0, 10, 0));

      // من اليمين و اليسار فقط buttonCenter هنا أضفنا هامش بمقدار 10 بيكسل حول الكائن
      BorderPane.setMargin(buttonCenter, new Insets(0, 10, 0, 10));

      // من الأعلى فقط buttonTop هنا أضفنا هامش بمقدار 10 بيكسل حول الكائن
      BorderPane.setMargin(buttonBottom, new Insets(10, 0, 0, 0));

      // الذي سيتم عرضه في وسط النافذة يظهر على كل المساحة المتوفرة buttonCenter هنا قمنا بجعل الكائن
      buttonCenter.setPrefSize(Double.MAX_VALUE, Double.MAX_VALUE);

      // الذي سيتم عرضه في أعلى النافذة يظهر على كل المساحة المتوفرة بالعرض buttonTop هنا قمنا بجعل الكائن
      buttonTop.setPrefWidth(Double.MAX_VALUE);

      // الذي سيتم عرضه في يمين النافذة يظهر على كل المساحة المتوفرة بالطول buttonRight هنا قمنا بجعل الكائن
      buttonRight.setPrefHeight(Double.MAX_VALUE);

      // الذي سيتم عرضه في أسفل النافذة يظهر على كل المساحة المتوفرة بالعرض buttonBottom هنا قمنا بجعل الكائن
      buttonBottom.setPrefWidth(Double.MAX_VALUE);

      // الذي سيتم عرضه في يسار النافذة يظهر على كل المساحة المتوفرة بالطول buttonLeft هنا قمنا بجعل الكائن
      buttonLeft.setPrefHeight(Double.MAX_VALUE);

      // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
      Scene scene = new Scene(root, 350, 250);

      // هنا وضعنا عنوان للنافذة
      stage.setTitle("JavaFX BorderPane");

      // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
      stage.setScene(scene);

      // هنا قمنا بإظهار النافذة
      stage.show();

      }

      // هنا قمنا بتشغيل التطبيق
      public static void main(String[] args) {
      launch(args);
      }

      }
    

ستظهر لك النافذة التالية عند التشغيل.

طريقة إضافة هامش من جميع الإتجاهات لأي شيء تم وضعه في BorderPane في JavaFX

ببطئ قم بتكبير حجم النافذة و تصغيرها بواسطة الفأرة لتفهم أكثر كيف ستتغير أحجام الأشياء التي وضعناها في الـ BorderPane.



 طريقة إستخدام بعض أقسام ال BorderPane في JavaFX

المثال التالي يعلمك طريقة إستخدام بعض أقسام الـ BorderPane و إظهارهم على كل المساحة المتوفرة.

مثال

Main.java
      import javafx.application.Application;
      import javafx.scene.Scene;
      import javafx.stage.Stage;
      import javafx.scene.control.Button;
      import javafx.scene.layout.BorderPane;

      public class Main extends Application {

      @Override
      public void start(Stage stage) {

      // في النافذة Root Node و الذي ننوي جعله الـ BorderPane هنا قمنا بإنشاء كائن من الكلاس
      BorderPane root = new BorderPane();

      // root هنا قمنا بإنشاء جميع الأشياء التي سنضيفها في الكائن
      Button buttonCenter = new Button("Center");
      Button buttonTop    = new Button("Top");
      Button buttonLeft   = new Button("Left");

      // root هنا قمنا بتحديد موقع كل شيء سيتم إضافته في الكائن
      root.setCenter(buttonCenter);
      root.setTop(buttonTop);
      root.setLeft(buttonLeft);

      // الذي سيتم عرضه في وسط النافذة يظهر على كل المساحة المتوفرة buttonCenter هنا قمنا بجعل الكائن
      buttonCenter.setPrefSize(Double.MAX_VALUE, Double.MAX_VALUE);

      // الذي سيتم عرضه في أعلى النافذة يظهر على كل المساحة المتوفرة بالعرض buttonTop هنا قمنا بجعل الكائن
      buttonTop.setPrefWidth(Double.MAX_VALUE);

      // الذي سيتم عرضه في يسار النافذة يظهر على كل المساحة المتوفرة بالطول و عرضه 80 بيكسل فقط buttonLeft هنا قمنا بجعل الكائن
      buttonLeft.setPrefSize(80, Double.MAX_VALUE);

      // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن
      Scene scene = new Scene(root, 350, 250);

      // هنا وضعنا عنوان للنافذة
      stage.setTitle("JavaFX BorderPane");

      // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ
      stage.setScene(scene);

      // هنا قمنا بإظهار النافذة
      stage.show();

      }

      // هنا قمنا بتشغيل التطبيق
      public static void main(String[] args) {
      launch(args);
      }

      }
    

ستظهر لك النافذة التالية عند التشغيل.

طريقة إستخدام بعض أقسام ال BorderPane في JavaFX

ببطئ قم بتكبير حجم النافذة و تصغيرها بواسطة الفأرة لتفهم أكثر كيف ستتغير أحجام الأشياء التي وضعناها في الـ BorderPane.

دروس كورس تعلم javaFX