کلاس JMenuBar
کلاس JMenuBar برای نمایش نوار منو در یک پنجره یا فریم برنامه استفاده میشود. شی ایجاد شده از کلاس JMenuBar خود میتواند شامل چندین منو شود.
کلاس JMenu
هدف از کلاس JMenu نمایش رو به پایین لیست آیتم های یک منو است.
کلاس JMenuItem
بعد از این که MenuBar یا نوار منو خود را در فریم ایجاد کردیم و و بعد یک Menu به نوار منوی خود اضاف کردیم حالا میرسیم به مرحله اضاف کردن آیتم های خود به منو که با انتخاب منوی مربوطه لیست آیتم ها رو به پایین نمایش داده شوند.
برای ایجاد آیتم های یک منو از کلاس JMenuItem استفاده میکنیم.
برای درک این این سه کلاس تصویر(1) را مشاهده کنید:
• یک JMenuBar میتواند از چندین JMenu تشکیل شود.
• یک JMenu میتواند از چندین JMenuItem تشکیل شود.
• همچنین میتوانیم به یک JMenu، JMenu دیگری به عنوان یکی از ایتم های آن اضافه کنیم.تصویر(2)
بررسی تصویر(2) :
1. بخش قرمز رنگ: JMenuBar ما که شامل چندین JMenu است.
2. بخش سبز رنگ: آیتم های منو File که بصورت لیست رو به پایین نمایش داده شده اند.
3. بخش آبی رنگ: آیتم های منو New را شامل میشود. منو New خود یک آیتم از منو File است.پس میتوانیم یک JMenu را به عنوان یک آیتم از JMenu دیگر درنظر بگیریم.
خب بریم سراغ بررسی این مفاهیم با حل مثال:
مثال:
package javalike ; import javax.swing.*; class MenuExample { 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"); 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); } public static void main(String args[]) { new MenuExample(); }} |
خروجی: تصویر(3)
JMenu menu, submenu; JMenuItem i1, i2, i3, i4, i5; |
• دو JMenu و پنج JMenuItem که آیتم های منوهای ما را تشکیل میدهند را تعریف کرده ایم.
JMenuBar mb=new JMenuBar(); |
• یک منو بار برای چسباندن منوهای خود به ان تعریف کرده و از آن شی ایجاد کرده ایم.پس فونداسیون و پایه منوهای ما را منوبار تشکیل میدهد.
menu=new JMenu("Menu"); submenu=new JMenu("Sub Menu"); |
با صدا زدن سازنده های کلاس JMenu دو شی به نام های menu و submenu ایجاد میکنیم.
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"); |
• پنج شی از JMenuItem ایجاد میکنیم.این پنج شی آیتم های منوهای مربوطه را تشکیل میدهند.
menu.add(i1); menu.add(i2); menu.add(i3); |
• آیتم های یک تا سه را به شی menu اضاف میکنیم.
submenu.add(i4); submenu.add(i5); |
menu.add(submenu); |
mb.add(menu); |
f.setJMenuBar(mb); |
• با این متد منوبار خود را به فریم اضاف میکنیم.
مثال:
package javalike; import javax.swing.*; import java.awt.event.*; public class MenuExample implements ActionListener { JFrame f; JMenuBar mb; JMenu file, edit, help; JMenuItem cut, copy, paste, select All; JTextArea ta; MenuExample() { f = new JFrame(); cut = new JMenuItem("cut"); copy = new JMenuItem("copy"); paste = new JMenuItem("paste"); select All = new JMenuItem(" select All"); cut.addActionListener(this); copy.addActionListener(this); paste.addActionListener(this); select All.addActionListener(this); mb = new JMenuBar(); file = new JMenu("File"); edit = new JMenu("Edit"); help = new JMenu("Help"); edit.add(cut); edit.add(copy); edit.add(paste); edit.add( select All); mb.add(file); mb.add(edit); mb.add(help); ta = new JTextArea(); ta.setBounds(5, 5, 360, 320); f.add(ta); f.setJMenuBar(mb); f.setLayout(null); f.setSize(400, 400); f.setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == cut) ta.cut(); if (e.getSource() == paste) ta.paste(); if (e.getSource() == copy) ta.copy(); if (e.getSource() == select All) ta. select All(); } public static void main(String[] args) { new MenuExample(); } } |
خروجی: تصویر(4)
• یک برنامه ویرایشگر ساده را مشاهده میکنید که در بخش منو Edit آیتم select All را انتخاب کرده ایم که موجب انتخاب همه متن های درون ویرایشگر شده است.
توضیحات:
public class MenuExample implements ActionListener { |
1. JFrame f; 2. JMenuBar mb; 3. JMenu file, edit, help; 4. JMenuItem cut, copy, paste, select All; 5. JTextArea ta; |
1. تعریف یک شی از نوع JFrame
2. تعریف یک شی از نوع کلاس JMenuBar که منوبار ما را تشکیل میدهد.
3. تعریف چند شی به عنوان منوهای برنامه
4. تعریف چند شی به عنوان آیتم های منوهای برنامه
5. تعریف یک شی از نوع کلاس JTextArea که محیط ویرایشگر ما را تشکیل میدهد.
cut = new JMenuItem("cut"); copy = new JMenuItem("copy"); paste = new JMenuItem("paste"); select All = new JMenuItem(" select All"); |
cut.addActionListener(this); copy.addActionListener(this); paste.addActionListener(this); select All.addActionListener(this); |
• رویدادهای ActionListener را به آیتم های خود اضاف میکنیم.در صورت کلیک کردن روی هر ایتم واکنش نسبت داده شده به هر ایتم اجرا میشود.
mb = new JMenuBar(); |
• منوبار خود را ایجاد میکنیم.
file = new JMenu("File"); edit = new JMenu("Edit"); help = new JMenu("Help"); |
• منوهای خود را میسازیم.
edit.add(cut); edit.add(copy); edit.add(paste); edit.add( select All); |
mb.add(file); mb.add(edit); mb.add(help); |
• حال منوهای خود را به منو بار اضاف میکنیم.
ta = new JTextArea(); ta.setBounds(5, 5, 360, 320); |
f.add(ta); |
• TextArea خود را به فریم اضاف میکنیم.
f.setJMenuBar(mb); |
public void actionPerformed(ActionEvent e) { if (e.getSource() == cut) ta.cut(); if (e.getSource() == paste) ta.paste(); if (e.getSource() == copy) ta.copy(); if (e.getSource() == select All) ta. select All(); } |
...........ادامه این جلسه آموزشی را در لینک زیر بصورت پی دی اف شده مرتب دانلود کنید.
این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690