JavaFXطريقة إضافة عناصر (MenuItem
) في كل قائمة (Menu
) و تنفيذ أوامر عند النقر على العناصر
المثال التالي يعلمك طريقة إضافة عناصر ( Menu Items ) في كل قائمة و إضافة خط فاصل ( Separator ) بين العناصر.
ستتعلم أيضاً كيف تنفذ أوامر عند النقر على العناصر الموجودة في القوائم.
مثال
import javafx.application.Application; import javafx.event.ActionEvent; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Menu; import javafx.scene.control.MenuBar; import javafx.scene.control.MenuItem; import javafx.scene.control.SeparatorMenuItem; import javafx.stage.Stage; public class Main extends Application { // يمثل شريط القوائم الذي سنضعه في أعلا النافذة MenuBar هنا قمنا بإنشاء كائن من الكلاس MenuBar menuBar = new MenuBar(); // تمثل القوائم الثلاث الرئيسية التي سنضعها في شريط القوائم Menu هنا قمنا بإنشاء 3 كائنات من الكلاس Menu menuFile = new Menu("File"); Menu menuEdit = new Menu("Edit"); Menu menuView = new Menu("View"); // تمثل العناصر التي سنضعها في القوائم MenuItem هنا قمنا بإنشاء 11 كائن من الكلاس MenuItem itemNewFile = new MenuItem("New"); MenuItem itemOpen = new MenuItem("Open"); MenuItem itemSave = new MenuItem("Save"); MenuItem itemExit = new MenuItem("Exit"); MenuItem itemUndo = new MenuItem("Undo"); MenuItem itemCut = new MenuItem("Cut"); MenuItem itemCopy = new MenuItem("Copy"); MenuItem itemPaste = new MenuItem("Paste"); MenuItem itemSelect = new MenuItem("Select All"); MenuItem itemAbout = new MenuItem("About"); MenuItem itemReport = new MenuItem("Report Issue"); public void start(Stage stage) { // هنا قمنا بوضع القوائم في شريط القوائم menuBar.getMenus().addAll(menuFile, menuEdit, menuView); // menuFile في القائمة itemExit و itemSave ,ItemOpen ,itemNewFile هنا قمنا بوضع العناصر menuFile.getItems().add(itemNewFile); menuFile.getItems().add(itemOpen); menuFile.getItems().add(itemSave); menuFile.getItems().add(new SeparatorMenuItem()); // هنا أضفنا خط فاصل menuFile.getItems().add(itemExit); // menuEdit في القائمة itemSelect و itemPaste ,itemCopy ,itemCut ,itemUndo هنا قمنا بوضع العناصر menuEdit.getItems().add(itemUndo); menuEdit.getItems().add(new SeparatorMenuItem()); // هنا أضفنا خط فاصل menuEdit.getItems().add(itemCut); menuEdit.getItems().add(itemCopy); menuEdit.getItems().add(itemPaste); menuEdit.getItems().add(new SeparatorMenuItem()); // هنا أضفنا خط فاصل menuEdit.getItems().add(itemSelect); // menuView في القائمة itemReport و itemAbout هنا قمنا بوضع العناصر menuView.getItems().add(itemAbout); menuView.getItems().add(itemReport); // هنا قمنا بجعل عرض شريط القوائم يساوي عرض النافذة حتى يظهر مطابق لها menuBar.setPrefWidth(400); // في النافذة Root Node لأننا ننوي جعله الـ Group هنا قمنا بإنشاء كائن من الكلاس Group root = new Group(); // root في الكائن menuBar هنا قمنا بإضافة الكائن root.getChildren().add(menuBar); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("JavaFX MenuBar"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); // itemNewFile هنا نضع الأوامر التي نريد أن يتم تنفيذها عند النقر على العنصر itemNewFile.setOnAction((ActionEvent e) -> { }); // itemOpen هنا نضع الأوامر التي نريد أن يتم تنفيذها عند النقر على العنصر itemOpen.setOnAction((ActionEvent e) -> { }); // itemSave هنا نضع الأوامر التي نريد أن يتم تنفيذها عند النقر على العنصر itemSave.setOnAction((ActionEvent e) -> { }); // itemExit هنا نضع الأوامر التي نريد أن يتم تنفيذها عند النقر على العنصر itemExit.setOnAction((ActionEvent e) -> { }); // itemUndo هنا نضع الأوامر التي نريد أن يتم تنفيذها عند النقر على العنصر itemUndo.setOnAction((ActionEvent e) -> { }); // itemCut هنا نضع الأوامر التي نريد أن يتم تنفيذها عند النقر على العنصر itemCut.setOnAction((ActionEvent e) -> { }); // itemCopy هنا نضع الأوامر التي نريد أن يتم تنفيذها عند النقر على العنصر itemCopy.setOnAction((ActionEvent e) -> { }); // itemPaste هنا نضع الأوامر التي نريد أن يتم تنفيذها عند النقر على العنصر itemPaste.setOnAction((ActionEvent e) -> { }); // itemSelect هنا نضع الأوامر التي نريد أن يتم تنفيذها عند النقر على العنصر itemSelect.setOnAction((ActionEvent e) -> { }); // itemAbout هنا نضع الأوامر التي نريد أن يتم تنفيذها عند النقر على العنصر itemAbout.setOnAction((ActionEvent e) -> { }); // itemReport هنا نضع الأوامر التي نريد أن يتم تنفيذها عند النقر على العنصر itemReport.setOnAction((ActionEvent e) -> { }); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }
ستظهر لك النافذة التالية عند التشغيل.
كل قائمة تحتوي على مجموعة عناصر مختلفة تظهرهم عند النقر عليها.