المقطع Scene و الجذر VBOX في JavaFX
المقطع Scene و الإين الجذر VBox, سوف نلاحظ أنه في بقية الدروس القادمة في JavaFX أنها تعتمد في عملها على الهيكلية الشجرية. يعني دائماً في عالم التقنية سوف تواجهك مصطلح شجرة او Trees و الشجرة تعتمد على صفة الأب و الإبن و هنا سيكون عملك في JavaFX.
لنلقي نظرة على الشكل الآتي
نلاحظ من الصورة بأن VBox هو الإبن أو ما يُسمى روت root و Scene هو الأب.
- تعريف Scene : هو المقطع أو الحاوية التي تَحوي جميع العناصر (الأزرار, اللستات, النصوص, المسجات...الخ) و تأتي مع الحزمة يعني كل الأدوات المُستخدَمة لبناء النموذج.
- تعريف VBox : هو العقدة التي يتم إضافة العنصر إليها ثم إضافة VBox إلى Scene.
مثال 1
package sajafx; import javafx.application.Application; import javafx.scene.Scene; import javafx.stage.Stage; import javafx.scene.text.Text; import javafx.scene.layout.VBox; public class Sajafx extends Application{ public void start(Stage stage) { Text msg=new Text("Ahmed Kaissar"); VBox root=new VBox(); root.getChildren().add(msg); Scene s=new Scene(root,660,450); stage.setScene(s); stage.show(); } public static void main(String []args){ launch(args); } }
في بداية هذا الكود قمنا بإستدعاء المكتبة Application و إستدعينا أيضاً حزمة الحاوية Scene التي تحوي جميع العناصر عبر scene.Scene. و إستدعينا أيضاً حزمة stage و حزمة إنشاء مربع, التي تتبع للأب عبر scene.text و في النهاية إستدعينا حزمة الإبن أو ما يسمى root. وضمن الدالة start وضعنا الكائن هو stage و بداخلها أنشأنا كلاس الحقل النصي الذي نريد إظهاره في النموذج و النص هو Ahmed kaissar. و قمنا بإنشاء كلاس الإبن(الجذر root) و أضفنا المسج في الإين عبر الدالة getChildren. و اضفنا الإبن للأب مع تحديد حجم النموذج بعرض 660 و طول 150. و اضفنا الكائن إلى النموذج عبر setScene و في نهاية الكود أظهرنا النموذج بواسطة stage.show.
و عندما يتم تشغيل الكود السابق سيظهر النموذج بالشكل الآتي.
إنشاء عناصر و إضافتهم إلى الروت JavaFX
كيفية إضافة اكثر من عنصر ثم إضافة العناصر إلى الروت (VBOX) ثم إضافة الروت إلى الحاوية (Scene) بعد ذلك نضيف Scene إلى المقطع النهائي Stage. تعرّفنا في الفقرة السابقة على كيفية إضافة عنصر واحد ثم إضافته إلى الروت الإبن ثم إضافة الروت إلى Scene. سنتعلم الآن كيفية إضافة عنصرين و سنتعلم كيفية التعامل مع اكثر من عنصر و إضافتهم إلى الروت root.
مثال 2
package sajafx; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import javafx.scene.layout.VBox; public class Sajafx extends Application{ public void start(Stage Stage) { Label L1=new Label("Sajom"); Button B=new Button("Click"); VBox root=new VBox(); root.setSpacing(2); root.getChildren().addAll(L1,B); Scene Scene=new Scene(root,500,300); Stage.setScene(Scene); Stage.show(); } public static void main(String []args){ launch(args); } }
لقد إستدعينا عدة حزم سوف نستخدمها ضمن هذا الكود و بعضها تعرّفنا عليها في الدروس السابقة و بعضها نعتبرها جديدة. و منها حزمة إضافة الزر control.Button و حزمة إضافة حقل control.Label. وقمنا في الدخول للدالة start والكائن الذي تمتلكه هو Stage وكتبنا ضمنها كلاس الخاص بالنص و هو Label. والنص المعروض هو Sajom و انشأنا كلاس الزر Button و كلاس الإبن الجذر VBox. و عن طريق الدالة setSpacing حددنا عدد الأبناء أو العناصر 2 و اضفنا هذه العناصر إلى الروت root بواسطة الدالة getChildren. و اضفنا الإبن إلى الأب و حددنا الحجم عرض 500 و طول 300 و قمنا بإضافة الكائن إلى النموذج و اظهرناه.
و عندما نقوم بتنفيذ الكود السابق سيظهر النموذج بالشكل.