در این قسمت تیم کدگیت را با آموزش JMenuBar در جاوا همراهی کنید. این آموزش را با معرفی سه کلاس JMenuBar، JMenu و JMenuItem آغاز کرده و سپس مثالی واقعی از مطالب توضیح داده شده را پیاده سازی میکنیم. همچنین پیشنهاد میشود قبل از مطالعه این جلسه، آموزشهای گذشته گرافیک در جاوا را مطالعه کنید.
منو در جاوا
در کامپیوتر، منو به فهرستی از گزینهها یا فرمانها گفته میشود که توسط رایانه یا سیستم ارتباطی برای کاربر به نمایش در میآید(ویکیپدیا). برای ساخت یک منو گرافیکی در جاوا از کلاسهای زیر استفاده میکنیم:
- کلاس JMenuBar برای نمایش نوار منو در Frame یا صفحه گرافیکی استفاده میشود.
- کلاس JMenu برای نمایش منوی کشویی درون JMenuBar استفاده میشود.
- کلاس JMenuItem یک آیتم (عنصر) از منو ما است. هر شی JMenu شامل یک یا چندین JMenuItem است.

مثال JMenuBar در جاوا
در مثال منو در جاوا یک صفحهای ایجاد خواهیم کرد و در آن منویی پیاده سازی میکنیم. خروجی این مثال را در تصویر بالا میتوانید ببینید. ابتدا کد این مثال را مشاهده کرده و سپس به توضیح کد میپردازیم:
class MenuExample implements ActionListener {
JMenu menu, submenu;
JMenuItem i1, i2, i3, i4, i5;
MenuExample() {
JFrame f = new JFrame("Menu and MenuItem Example");
JMenuBar mb = new JMenuBar();
menu = new JMenu("Menu");
submenu = new JMenu("Sub Menu");
i1 = new JMenuItem("Item 1");
i2 = new JMenuItem("Item 2");
i3 = new JMenuItem("Item 3");
i4 = new JMenuItem("Item 4");
i5 = new JMenuItem("Item 5");
i1.addActionListener(this);
i2.addActionListener(this);
i3.addActionListener(this);
i4.addActionListener(this);
i5.addActionListener(this);
menu.add(i1);
menu.add(i2);
menu.add(i3);
submenu.add(i4);
submenu.add(i5);
menu.add(submenu);
mb.add(menu);
f.setJMenuBar(mb);
f.setSize(400, 400);
f.setLayout(null);
f.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == i1)
System.out.println("Item 1 Clicked!");
if (e.getSource() == i2)
System.out.println("Item 2 Clicked!");
if (e.getSource() == i3)
System.out.println("Item 3 Clicked!");
if (e.getSource() == i4)
System.out.println("Item 4 Clicked!");
if (e.getSource() == i5)
System.out.println("Item 5 Clicked!");
}
public static void main(String args[]) {
new MenuExample();
}
}
در کد بالا درون Constructor، شیهای JMenuBar، JMenu و JMenuItem را ساختهایم. سپس شیهای کلاس JMenuItem را به JMenu اضافه کردیم. همچنین شی JMenu خود را به کلاس JMenuBar اضافه کردیم. برای نمایش منو در JFrame از کلاس setJMenuBar استفاده کرده و آن را در Frame خود قرار دادیم. همچنین در آخر برای تمامی JMenuItem های خود یک Listener نوشته تا با کلیک بر روی هر کدام، نام آن منو در کنسول چاپ شود.