JMenuBar، مما يتيح للمستخدمين تحديد خيارات متعددة أو اختيار خيار واحد من مجموعة. سنستعرض مثالاً عملياً يوضح كيفية بناء هذه المكونات وتجميعها بشكل صحيح.المثال التالي يوضح كيفية إضافة
JCheckBoxMenuItem و JRadioButtonMenuItem كعناصر في قائمة ضمن JMenuBar:import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.ButtonGroup;
public class Main {
public static void main (String[] args) {
JFrame frame = new JFrame ( "JMenuBar demo" );
// هنا أنشأنا كائن من الكلاس JFrame أي قمنا بإنشاء نافذة مع وضع عنوان لها
frame.setSize( 500 , 250 );
// هنا قمنا بتحديد حجم النافذة. عرضها 500 و طولها 250
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// هنا جعلنا زر الخروج من النافذة يغلق البرنامج
// هنا قمنا بتعريف شريط القوائم
JMenuBar menuBar = new JMenuBar ();
// هنا قمنا بتعريف قائمة واحدة
JMenu menu = new JMenu ( "Menu" );
// هنا قمنا بتعريف إثنين Check Box
JCheckBoxMenuItem connect = new JCheckBoxMenuItem ( "Connect" );
JCheckBoxMenuItem recieveNotifications = new JCheckBoxMenuItem ( "Recieve Notifications" );
// هنا قمنا بتعريف ثلاثة Radio Buttons
JRadioButtonMenuItem isAvailable = new JRadioButtonMenuItem ( "Available" );
JRadioButtonMenuItem isBusy = new JRadioButtonMenuItem ( "Busy" );
JRadioButtonMenuItem isAway = new JRadioButtonMenuItem ( "Away" );
// هنا قمنا بتعريف عنصر عادي
JMenuItem exit = new JMenuItem ( "Exit" );
// هنا قمنا بتعريف كائن من الكلاس ButtonGroup لوضع الثلاثة Radio Buttons ضمن مجموعة واحدة
ButtonGroup group = new ButtonGroup ();
// هنا وضعنا الثلاثة Radio Buttons في نفس المجموعة و بالتالي أصبح بالإمكان إختيار أحدهم فقط
group.add(isAvailable);
group.add(isBusy);
group.add(isAway);
// هنا جعلنا الـ connect و الـ isAvailable مختارين بشكل إفتراضي
connect.setSelected( true );
isAvailable.setSelected( true );
// هنا قمنا بوضع القائمة في شريط القوائم
menuBar.add(menu);
// هنا قمنا بوضع جميع العناصر في القائمة
menu.add(connect);
menu.add(recieveNotifications);
menu.addSeparator(); // هنا أضفنا خط فاصل
menu.add(isAvailable);
menu.add(isBusy);
menu.add(isAway);
menu.addSeparator(); // هنا أضفنا خط فاصل
menu.add(exit);
// هنا قمنا بوضع شريط القوائم في الـ frame
frame.setJMenuBar(menuBar);
// هنا جعلنا الـ frame مرئية
frame.setVisible( true );
}
}
يوضح المثال أعلاه كيفية بناء شريط قوائم (
JMenuBar) يحتوي على قائمة (JMenu) تضم أنواعاً مختلفة من عناصر القائمة:JCheckBoxMenuItem: لإنشاء مربعات اختيار تسمح للمستخدم بتحديد خيارات متعددة بشكل مستقل. في هذا المثال، تم إنشاء 'Connect' و 'Recieve Notifications'.JRadioButtonMenuItem: لإنشاء أزرار راديو تسمح للمستخدم باختيار خيار واحد فقط من مجموعة. تم إنشاء 'Available', 'Busy', و 'Away'.ButtonGroup: هذا الكلاس ضروري لتجميع عناصرJRadioButtonMenuItemمعاً. عند إضافة أزرار الراديو إلىButtonGroup، يضمن ذلك أن اختيار أحدها سيؤدي تلقائياً إلى إلغاء تحديد أي زر راديو آخر في نفس المجموعة.JMenuItem: لعناصر القائمة القياسية، مثل 'Exit'.
JFrame) وشريط القوائم، ثم أضيفت العناصر إلى القائمة، مع استخدام menu.addSeparator() لإضافة فواصل بصرية بين مجموعات العناصر. أخيراً، تم تعيين شريط القوائم للنافذة وجعل النافذة مرئية.عند تشغيل هذا الكود، ستظهر لك النافذة التالية التي تعرض شريط القوائم مع مربعات الاختيار وأزرار الراديو العاملة:
بهذا نكون قد تعلمنا كيفية دمج عناصر التحكم التفاعلية هذه بفعالية ضمن قوائم تطبيقات Java Swing، مما يعزز من مرونة واجهة المستخدم وقدرتها على التفاعل مع المستخدم.