JMenuBar
,菜單欄。菜單欄組件添加到 JFrame 窗口后,在窗口的內容顯示區域的頂部出現。實現一個菜單欄主要涉及三種類:
(1)JMenuBar
表示一個菜單欄。
(2)JMenu
表示菜單欄上的一個一級菜單。
(3)JMenuItem, JCheckBoxMenuItem, JRadioButtonMenuItem
表示一級菜單下的一個子菜單項,三者分別表示 普通的子菜單、帶復選框的子菜單、帶單選按鈕的子菜單。
PS: JMenu 繼承自 JMenuItem,所以一個 JMenu 也可以當做是一個二級子菜單項,通過 JMenu 和 JMenuItem 之間的嵌套,可實現多級子菜單效果。
代碼演示:
package stu1; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.lang.*; public class menu { public static class MainForm extends JFrame { private void init(String title) { setTitle(title);//設置窗口標題 JMenuBar menuBar = new JMenuBar();//創建菜單欄對象 setJMenuBar(menuBar);// 將菜單欄對象添加到窗體的菜單欄中 JMenu menu1 = new JMenu("菜單1");// 創建菜單對象 menuBar.add(menu1);//將菜單對象添加到菜單欄對象中 JMenuItem item1 = new JMenuItem("菜單選項1");//創建子菜單對象 menu1.add(item1);//將子菜單對象添加到一級菜單對象中 menu1.addSeparator();//在菜單項中間添加分界線 JMenu menu2 = new JMenu("菜單2"); menuBar.add(menu2); JMenuItem item2 = new JMenuItem("菜單選項2"); menu1.add(item2); JMenu submenu = new JMenu("子菜單1"); menu1.add(submenu); submenu.add(new JMenuItem("子菜單1")); submenu.add(new JMenuItem("子菜單2")); //item1.setAccelerator(KeyStroke.getKeyStroke('A')); item1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,KeyEvent.CTRL_MASK));//添加熱鍵 } public MainForm(String title,int posX,int posY,int width,int height) { init(title); setLocation(posX,posY); setSize(width,height); setVisible(true); setResizable(true); } public static void main(String[] args){ int x=0,y=0,w=1000,h=1000; MainForm windows1 = new MainForm("一個小窗",x,y,w,h); MainForm windows2 = new MainForm("一個小小窗",x,y,w,h); Container container= windows1.getContentPane(); container.setBackground(Color.darkGray); windows1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); windows2.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } } }
運行截圖: