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
فيه
المثال التالي يعلمك طريقة إضافة شريط القوائم و إضافة قوائم فيه.
مثال طريقة إضافة شريط القوائم و إضافة قوائم فيه.
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); } }
•ستظهر لك النافذة التالية عند التشغيل.
طريقة إضافة عناصر JMenuItem
في كل قائمة JMenu
و تنفيذ أوامر عند النقر على العناصر
المثال التالي يعلمك طريقة إضافة عناصر ( Menu Items ) في كل قائمة و إضافة خط فاصل ( Separator ) بين العناصر.
ستتعلم أيضاً كيف تنفذ أوامر عند النقر على العناصر الموجودة في القوائم.
مثال طريقة إضافة عناصر ( Menu Items ) في كل قائمة و إضافة خط فاصل ( Separator ) بين العناصر.
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
المثال التالي يعلمك طريقة وضع أيقونات لعناصر القائمة.
في البداية قمنا بإنشاء مجلد خاص لوضع الأيقونات التي نريد عرضها في البرنامج كما في الصورة التالية.
مثال طريقة وضع أيقونات لعناصر القائمة.
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); } }
•ستظهر لك النافذة التالية عند التشغيل.
طريقة إضافة JCheckBoxMenuItem
و JRadioButtonMenuItem
كعناصر للقائمة JMenu
المثال التالي يعلمك طريقة إضافة Check Boxes و Radio Buttons كعناصر في القائمة.
مثال طريقة إضافة Check Boxes و Radio Buttons كعناصر في القائمة.
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); } }
•ستظهر لك النافذة التالية عند التشغيل.
طريقة وضع قائمة JMenuBar
بداخل قائمة JMenuBar
أخرى
المثال التالي يعلمك طريقة وضع القوائم بداخل بعضها البعض.
مثال طريقة وضع القوائم بداخل بعضها البعض.
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); } }
•ستظهر لك النافذة التالية عند التشغيل.
دورة تعلم الجافا Swing