Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

JavaFXطريقة إضافة CheckMenuItem و RadioMenuItem في الـMenu

المثال التالي يعلمك طريقة إضافة CheckMenuItem و RadioMenuItem كعناصر في الـ Menu.


مثال

Main.java
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.CheckMenuItem;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.control.RadioMenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.control.ToggleGroup;
import javafx.stage.Stage;

public class Main extends Application {

    // يمثل شريط القوائم الذي سنضعه في أعلا النافذة MenuBar هنا قمنا بإنشاء كائن من الكلاس
    MenuBar menuBar = new MenuBar();

    // هنا قمنا بإنشاء القائمة الرئيسية التي سنضعها في شريط القوائم
    Menu menu = new Menu("Menu");
    
    // هنا قمنا بإنشاء 6 كائنات تمثل العناصر التي سنضعها في القوائم
    CheckMenuItem itemConnected = new CheckMenuItem("Connect");
    CheckMenuItem itemRecieveNotifications = new CheckMenuItem("Recieve Notification");
    RadioMenuItem itemAvailable = new RadioMenuItem("Available");
    RadioMenuItem itemBusy = new RadioMenuItem("Busy");
    RadioMenuItem itemAway = new RadioMenuItem("Away");
    MenuItem itemExit = new MenuItem("Exit");
    
    // itemAway و itemBusy و itemAvailable لأننا ننوي وضع الكائنات toggleGroup هنا قمنا بإنشاء كائن من الكلاس
    // لاحقاً في مجموعة واحدة لجعل المستخدم قادر على إختيار عنصر واحد منهم في كل مرة و ليس كلهم
    ToggleGroup toggleGroup = new ToggleGroup();
    
    @Override
    public void start(Stage stage) {

        // هنا قمنا بوضع القائمة في شريط القوائم
        menuBar.getMenus().addAll(menu);

        // menu هنا قمنا بوضع العناصر في القائمة
        menu.getItems().add(itemConnected);
        menu.getItems().add(itemRecieveNotifications);
        menu.getItems().add(new SeparatorMenuItem());   // هنا أضفنا خط فاصل
        menu.getItems().add(itemAvailable);
        menu.getItems().add(itemBusy);
        menu.getItems().add(itemAway);
        menu.getItems().add(new SeparatorMenuItem());   // هنا أضفنا خط فاصل
        menu.getItems().add(itemExit);
        
        // هنا قمنا بجعل عرض شريط القوائم يساوي عرض النافذة حتى يظهر مطابق لها
        menuBar.setPrefWidth(400);
        
        // و هكذا أصبح يمكن إختيار واحد منهم فقط في كل مرة itemAway و itemBusy و itemAvailable و ربطنا فيه الكائنات ToggleGroup هنا قمنا بإنشاء كائن من الكلاس
        itemAvailable.setToggleGroup(toggleGroup);
        itemBusy.setToggleGroup(toggleGroup);
        itemAway.setToggleGroup(toggleGroup);

        // في النافذة 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();

        // مختارَين بشكل إفتراضي عند تشغيل التطبيق, أي يوجد عليهما علامة صح itemAvailable و itemConnected هنا قمنا بجعل الكائنين
        itemConnected.setSelected(true);
        itemAvailable.setSelected(true);

    }

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

}

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

طريقة إضافة CheckMenuItem و RadioMenuItem كعناصر في القائمة Menu في javafx