في هذا المقال، سنتناول كيفية بناء قوائم متداخلة (Nested Menus) باستخدام مكتبة Java Swing، مما يتيح لك تنظيم عناصر واجهة المستخدم الرسومية (GUI) بشكل فعال واحترافي. سنستعرض مثالاً عملياً يوضح استخدام مكونات JMenuBar، JMenu، و JMenuItem لإنشاء هيكل قائمة مع قوائم فرعية.
لنبدأ بمثال عملي يوضح كيفية إنشاء نافذة تحتوي على شريط قوائم (JMenuBar) وقائمة رئيسية (JMenu) تتضمن قائمة فرعية (JMenu) أخرى، بالإضافة إلى عناصر القائمة (JMenuItem). الكود التالي يوضح الخطوات اللازمة:
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Main {
public static void main (String[] args) {
// إنشاء إطار النافذة (JFrame) وتعيين عنوان لها
JFrame frame = new JFrame ( "JMenuBar demo" );
// تحديد أبعاد النافذة (العرض 500 بكسل، الارتفاع 250 بكسل)
frame.setSize( 500 , 250 );
// تعيين عملية الإغلاق الافتراضية لإنهاء التطبيق عند إغلاق النافذة
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// إنشاء شريط القوائم الرئيسي (JMenuBar)
JMenuBar menuBar = new JMenuBar ();
// إنشاء قائمة رئيسية (JMenu) وقائمة فرعية (JMenu)
JMenu menu = new JMenu ( "Menu" );
JMenu subMenu = new JMenu ( "Sub Menu" );
// إنشاء عناصر القائمة (JMenuItem)
JMenuItem item1 = new JMenuItem ( "Item 1" );
JMenuItem item2 = new JMenuItem ( "Item 2" );
JMenuItem item3 = new JMenuItem ( "Item 3" );
JMenuItem item4 = new JMenuItem ( "Item 4" );
JMenuItem item5 = new JMenuItem ( "Item 5" );
JMenuItem item6 = new JMenuItem ( "Item 6" );
// إضافة القائمة الرئيسية إلى شريط القوائم
menuBar.add(menu);
// إضافة أول ثلاثة عناصر إلى القائمة الرئيسية
menu.add(item1);
menu.add(item2);
menu.add(item3);
// إضافة القائمة الفرعية إلى القائمة الرئيسية
menu.add(subMenu);
// إضافة العناصر الثلاثة المتبقية إلى القائمة الفرعية
subMenu.add(item4);
subMenu.add(item5);
subMenu.add(item6);
// تعيين شريط القوائم للإطار (JFrame)
frame.setJMenuBar(menuBar);
// جعل النافذة مرئية
frame.setVisible( true );
}
}عند تشغيل الكود أعلاه، ستحصل على نافذة تحتوي على شريط قوائم منظم كما هو موضح في الصورة التالية: