Swing - الكلاس JMenuBar و الكلاسات التي يمكن إستخدامها في شريط القائمة

Java Swing الكلاس JMenuBar و الكلاسات التي يمكن إستخدامها في شريط القائمة

مقدمة الكلاس JMenuBar

الكلاس JMenuBar يستخدم لإضافة شريط القوائم ( Menu Bar ) في أعلا الـ Frame.
الكلاس Menu يستخدم لإضافة قائمة ( Menu ) في شريط القوائم.
الكلاس MenuItem يستخدم لإضافة عنصر ( Item ) في القائمة.
الكلاس JCheckBoxMenuItem يستخدم لإضافة Check Box في القائمة و هو مثل الكلاس JCheckBox.
الكلاس JRadioButtonMenuItem يستخدم لإضافة Radio Button في القائمة و هو مثل الكلاس JRadioButton.


بناء الكلاس JMenuBar

public class JMenuBar
extends JComponent
implements Accessible, MenuElement
	

بناء الكلاس JMenu

public class JMenu
extends JMenuItem
implements Accessible, MenuElement
	

بناء الكلاس JMenuItem

public class JMenuItem
extends AbstractButton
implements Accessible, MenuElement
	

بناء الكلاس JCheckBoxMenuItem

public class JCheckBoxMenuItem
extends JMenu
implements Accessible, SwingConstants
	

بناء الكلاس JRadioButtonMenuItem

public class JRadioButtonMenuItem
extends JMenu
implements Accessible
	

 طريقة إنشاء شريط قوائم JMenuBar و إضافة قوائم JMenu فيه

المثال التالي يعلمك طريقة إضافة شريط القوائم و إضافة قوائم فيه.


مثال طريقة إضافة شريط القوائم و إضافة قوائم فيه.

Main.java
					import javax.swing.JFrame;
					import javax.swing.JMenu;
					import javax.swing.JMenuBar;

					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();

					// هنا قمنا بتعريف 3 قوائم
					JMenu file = new JMenu("File");
					JMenu edit = new JMenu("Edit");
					JMenu help = new JMenu("Help");

					// هنا قمنا بوضع القوائم الثلاثة في شريط القوائم
					menuBar.add(file);
					menuBar.add(edit);
					menuBar.add(help);

					// frame هنا قمنا بوضع شريط القوائم في الـ
					frame.setJMenuBar(menuBar);

					// مرئية frame هنا جعلنا الـ
					frame.setVisible(true);

					}

					}
				  

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

طريقة إنشاء شريط قوائم JMenuBar و إضافة قوائم JMenuItem فيه في جافا

 طريقة إضافة عناصر JMenuItem في كل قائمة JMenu و تنفيذ أوامر عند النقر على العناصر

المثال التالي يعلمك طريقة إضافة عناصر ( Menu Items ) في كل قائمة و إضافة خط فاصل ( Separator ) بين العناصر.
ستتعلم أيضاً كيف تنفذ أوامر عند النقر على العناصر الموجودة في القوائم.


مثال طريقة إضافة عناصر Menu Items ) في كل قائمة و إضافة خط فاصل Separator ) بين العناصر.

Main.java
					import java.awt.event.ActionEvent;
					import java.awt.event.ActionListener;
					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 frame = new JFrame("JMenuBar demo");              // أي قمنا بإنشاء نافذة مع وضع عنوان لها JFrame هنا أنشأنا كائن من الكلاس
					frame.setSize(500, 250);                                 // هنا قمنا بتحديد حجم النافذة. عرضها 500 و طولها 250
					frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    // هنا جعلنا زر الخروج من النافذة يغلق البرنامج

					// هنا قمنا بتعريف شريط القوائم
					JMenuBar menuBar = new JMenuBar();

					// هنا قمنا بتعريف 3 قوائم
					JMenu file = new JMenu("File");
					JMenu edit = new JMenu("Edit");
					JMenu help = new JMenu("Help");

					// هنا قمنا بتعريف 11 عنصر
					JMenuItem newFile = new JMenuItem("New");
					JMenuItem open = new JMenuItem("Open");
					JMenuItem save = new JMenuItem("Save");
					JMenuItem exit = new JMenuItem("Exit");
					JMenuItem undo = new JMenuItem("Undo");
					JMenuItem cut = new JMenuItem("Cut");
					JMenuItem copy = new JMenuItem("Copy");
					JMenuItem paste = new JMenuItem("Paste");
					JMenuItem select = new JMenuItem("Select All");
					JMenuItem about = new JMenuItem("About");
					JMenuItem report = new JMenuItem("Report Issue");

					// هنا قمنا بوضع القوائم الثلاثة في شريط القوائم
					menuBar.add(file);
					menuBar.add(edit);
					menuBar.add(help);

					// file في القائمة exit و save ,open ,newFile هنا قمنا بوضع العناصر
					file.add(newFile);
					file.add(open);
					file.add(save);
					file.addSeparator(); // هنا أضفا خط فاصل
					file.add(exit);

					// edit في القائمة select و paste ,copy ,cut ,undo هنا قمنا بوضع العناصر
					edit.add(undo);
					edit.addSeparator(); // هنا أضفا خط فاصل
					edit.add(cut);
					edit.add(copy);
					edit.add(paste);
					edit.addSeparator(); // هنا أضفا خط فاصل
					edit.add(select);

					// help في القائمة report و about هنا قمنا بوضع العناصر
					help.add(about);
					help.add(report);

					// frame هنا قمنا بوضع شريط القوائم في الـ
					frame.setJMenuBar(menuBar);

					// مرئية frame هنا جعلنا الـ
					frame.setVisible(true);

					// هنا نضع الأوامر التي ستنفذ عند النقر على كل عنصر موجود في القائمة
					ActionListener al = new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent e) {
					if( e.getSource() == newFile )
					{
                    // newFile هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
					}
					else if( e.getSource() == open )
					{
                    // open هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
					}
					else if( e.getSource() == save )
					{
                    // save هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
					}
					else if( e.getSource() == exit )
					{
                    // exit هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
					}
					else if( e.getSource() == undo )
					{
                    // undo هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
					}
					else if( e.getSource() == copy )
					{
                    // copy هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
					}
					else if( e.getSource() == cut )
					{
                    // cut هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
					}
					else if( e.getSource() == paste )
					{
                    // paste هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
					}
					else if( e.getSource() == select )
					{
                    // select هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
					}
					else if( e.getSource() == about )
					{
                    // about هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
					}
					else if( e.getSource() == report )
					{
                    // report هنا نضع الأوامر التي نريد أن يتم تنفيذه عند النقر على العنصر
					}

					}
					};

					// al هنا ربطنا جميع العناصر بالكائن
					newFile.addActionListener(al);
					open.addActionListener(al);
					save.addActionListener(al);
					exit.addActionListener(al);
					undo.addActionListener(al);
					cut.addActionListener(al);
					copy.addActionListener(al);
					paste.addActionListener(al);
					select.addActionListener(al);
					about.addActionListener(al);
					report.addActionListener(al);

					}

					}
				  

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

كل قائمة تحتوي على مجموعة عناصر مختلفة تظهرهم عند النقر عليها.

طريقة إضافة عناصر JMenuItem في كل قائمة JMenu و تنفيذ أوامر عند النقر على العناصر في جافا

 طريقة وضع أيقونة للـ JMenuItem

المثال التالي يعلمك طريقة وضع أيقونات لعناصر القائمة.

في البداية قمنا بإنشاء مجلد خاص لوضع الأيقونات التي نريد عرضها في البرنامج كما في الصورة التالية.



مثال طريقة وضع أيقونات لعناصر القائمة.

Main.java
					import javax.swing.JFrame;
					import javax.swing.JMenu;
					import javax.swing.JMenuBar;
					import javax.swing.JMenuItem;
					import javax.swing.ImageIcon;

					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");

					// هنا قمنا بتعريف 4 عناصر
					JMenuItem newFile = new JMenuItem("New", new ImageIcon(Main.class.getResource("images/new-file-icon.png")));
					JMenuItem open = new JMenuItem("Open", new ImageIcon(Main.class.getResource("images/open-icon.png")));
					JMenuItem save = new JMenuItem("Save", new ImageIcon(Main.class.getResource("images/save-icon.png")));
					JMenuItem exit = new JMenuItem("Exit", new ImageIcon(Main.class.getResource("images/exit-icon.png")));

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

					// هنا قمنا بوضع جميع العناصر في القائمة
					menu.add(newFile);
					menu.add(open);
					menu.add(save);
					menu.addSeparator(); // هنا أضفا خط فاصل
					menu.add(exit);

					// frame هنا قمنا بوضع شريط القوائم في الـ
					frame.setJMenuBar(menuBar);

					// مرئية frame هنا جعلنا الـ
					frame.setVisible(true);

					}

					}
				  

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

طريقة إضافة أيقونات للعناصر JMenuItem في جافا

طريقة إضافة JCheckBoxMenuItem و JRadioButtonMenuItem كعناصر للقائمة JMenu

المثال التالي يعلمك طريقة إضافة Check Boxes و Radio Buttons كعناصر في القائمة.


مثال طريقة إضافة Check Boxes و Radio Buttons كعناصر في القائمة.

Main.java
					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");

					// Check Box هنا قمنا بتعريف إثنين
					JRadioButtonMenuItem isAvailable = new JRadioButtonMenuItem("Available");
					JRadioButtonMenuItem isBusy = new JRadioButtonMenuItem("Busy");
					JRadioButtonMenuItem isAway = new JRadioButtonMenuItem("Away");

					// هنا قمنا بتعريف عنصر عادي
					JMenuItem exit = new JMenuItem("Exit");

					// ضمن مجموعة واحدة Radio Buttons لوضع الثلاثة ButtonGroup هنا قمنا بتعريف كائن من الكلاس
					ButtonGroup group = new ButtonGroup();

					// في نفس المجموعة و بالتالي أصبح بالإمكان إختيار أحدهم فقط Radio Buttons هنا وضعنا الثلاثة
					group.add(isAvailable);
					group.add(isBusy);
					group.add(isAway);

					// مختارين بشكل إفتراضي isAvailable و الـ connect هنا جعلنا الـ
					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);

					}

					}
				  

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

طريقة إضافة JCheckBoxMenuItem و JRadioButtonMenuItem كعناصر للقائمة JMenu في جافا

 طريقة وضع قائمة JMenuBar بداخل قائمة JMenuBar أخرى

المثال التالي يعلمك طريقة وضع القوائم بداخل بعضها البعض.


مثال طريقة وضع القوائم بداخل بعضها البعض.

Main.java
					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 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");
					JMenu subMenu = new JMenu("Sub Menu");

					// هنا قمنا بتعريف 6 عناصر
					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);

					// frame هنا قمنا بوضع شريط القوائم في الـ
					frame.setJMenuBar(menuBar);

					// مرئية frame هنا جعلنا الـ
					frame.setVisible(true);

					}

					}
				  

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

طريقة وضع قائمة JMenuBar بداخل قائمة JMenuBar أخرى في جافا

دورة تعلم الجافا Swing