程序功能:在窗口中添加菜单栏,在菜单栏添加菜单项,并添加下拉菜单和 2 级菜单,通过选择菜单项可以执行不同操作,生成如下图所示窗口。
package cys; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Menu extends JFrame implements ActionListener{ JMenu menu1,menu2,submenu; JMenuBar menubar; JButton quit; public Menu() { super("添加菜单的窗口"); Container con = getContentPane(); con.setLayout(null); quit = new JButton("退出"); quit.addActionListener(this); con.add(quit); quit.setBounds(280,350,80,40); createmenu(); } void createmenu() { menubar = new JMenuBar(); setJMenuBar(menubar); menu1 = new JMenu("文件"); JMenuItem menuitem1 = new JMenuItem("打开"); JMenuItem menuitem2 = new JMenuItem("关闭"); menu1.add(menuitem1); menu1.add(menuitem2); menu1.addSeparator(); JMenuItem menuitem3 = new JMenuItem("退出"); menu1.add(menuitem3); JMenu submenu = new JMenu("编辑"); JMenuItem menuitem4 = new JMenuItem("复制"); JMenuItem menuitem5 = new JMenuItem("剪切"); JMenuItem menuitem6 = new JMenuItem("粘贴"); submenu.add(menuitem4); submenu.add(menuitem5); submenu.add(menuitem6); menu1.add(submenu); menu2 = new JMenu("帮助"); menubar.add(menu1); menubar.add(menu2); } public void actionPerformed(ActionEvent e) { if(e.getSource()==quit) { System.exit(0); } } public static void main(String[] args) { // TODO Auto-generated method stub Menu mainFrame = new Menu(); mainFrame.setSize(600,450); mainFrame.setVisible(true); } }
其它例子:
//【例6-26】 下拉式菜单创建示例。 //程序清单6-26: JMenuDemo.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JMenuDemo extends JFrame { JMenuBar menuBar; JMenu menu, submenu; JMenuItem menuItem; JCheckBoxMenuItem cbMenuItem; JRadioButtonMenuItem rbMenuItem; public JMenuDemo() { super("JMenuDemo"); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); createMenu(); } void createMenu() { menuBar = new JMenuBar(); // 生成菜单条 setJMenuBar(menuBar); menu = new JMenu("有菜单项菜单"); // 创建第一个菜单 menu.setMnemonic(KeyEvent.VK_A); menuBar.add(menu); menuItem = new JMenuItem("文本菜单项"); // 创建菜单项 menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK)); menu.add(menuItem); menuItem = new JMenuItem("图形菜单项", new ImageIcon("images/img.gif")); menuItem.setMnemonic(KeyEvent.VK_B); menu.add(menuItem); menuItem = new JMenuItem(new ImageIcon("images/img.gif")); menuItem.setMnemonic(KeyEvent.VK_D); menu.add(menuItem); menu.addSeparator(); // 创建单选菜单项 ButtonGroup group = new ButtonGroup(); rbMenuItem = new JRadioButtonMenuItem("单选菜单项一"); rbMenuItem.setSelected(true); rbMenuItem.setMnemonic(KeyEvent.VK_R); group.add(rbMenuItem); menu.add(rbMenuItem); rbMenuItem = new JRadioButtonMenuItem("单选菜单项二"); rbMenuItem.setMnemonic(KeyEvent.VK_O); group.add(rbMenuItem); menu.add(rbMenuItem); menu.addSeparator(); // 创建复选菜单项 cbMenuItem = new JCheckBoxMenuItem("多选菜单项一"); cbMenuItem.setMnemonic(KeyEvent.VK_C); menu.add(cbMenuItem); cbMenuItem = new JCheckBoxMenuItem("多选菜单项二"); cbMenuItem.setMnemonic(KeyEvent.VK_H); menu.add(cbMenuItem); menu.addSeparator(); // 创建子菜单 submenu = new JMenu("子菜单"); submenu.setMnemonic(KeyEvent.VK_S); menuItem = new JMenuItem("子菜单菜单项一"); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK)); submenu.add(menuItem); menuItem = new JMenuItem("子菜单菜单项二"); submenu.add(menuItem); menu.add(submenu); menu = new JMenu("无菜单项菜单"); // 创建菜单 menu.setMnemonic(KeyEvent.VK_N); menuBar.add(menu); } public static void main(String[] args) { JMenuDemo mainFrame = new JMenuDemo(); mainFrame.setSize(450, 260); mainFrame.setVisible(true); } }