JMenu的使用

package com.mhc.learn;

import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.KeyStroke;

/**
 *
 * @author mhc
 *This is a test of JMenu . And it's reffered 点击打开链接
 */

public class JMenuExample extends JMenuBar {
    String [] fileItems = new String[] {"New","Open","Save","Exit"};
    String[] editItems = new String[]{"Undo","Cut","Copy","Paste"};
    char[] fileShortcuts = {'N','O','S','X'};
    char[] editShortcuts={'U','X','C','V'};
    
    public JMenuExample(){
        JMenu fileMenu = new JMenu("File");
        JMenu editMenu = new JMenu("Edit");
        JMenu otherMenu = new JMenu("Other");
        JMenu subMenu = new JMenu("SubMenu");//子菜单
        JMenu subMenu2 = new JMenu("SubMenu2");//2级子菜单
        
        //组装
        ActionListener printListener = new ActionListener() {
            
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("Menu item["+e.getActionCommand()+"] was perssed.");
            }
        };
        
        for (int i = 0; i <fileItems.length; i++) {
            JMenuItem item = new JMenuItem(fileItems[i],fileShortcuts[i]);
            item.addActionListener(printListener);//都添加一个输出的事件
            fileMenu.add(item);//将菜单项添加到菜单中            
        }
        //组装文件菜单(File menus)和快捷键(Keyboard accelerators)
        for (int i = 0; i < editItems.length; i++) {
            JMenuItem item = new JMenuItem(editItems[i]);
            item.setAccelerator(KeyStroke.getKeyStroke(editShortcuts[i],Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(),false));
            item.addActionListener(printListener);
            editMenu.add(item);
        }
        //插入一个分隔符在编辑菜单位置在“Undo”之后
        editMenu.insertSeparator(1);
        
        //组装
        JMenuItem item;
        subMenu2.add(item=new JMenuItem("Extra 2"));
        item.addActionListener(printListener);
        subMenu.add(item=new JMenuItem("Extra 1"));
        item.addActionListener(printListener);
        subMenu.add(subMenu2);
        
        //Assemble the Other menu itself
        otherMenu.add(subMenu);
        otherMenu.add(item=new JCheckBoxMenuItem("Check Me"));
        item.addActionListener(printListener);
        otherMenu.addSeparator();
        
    ButtonGroup buttonGroup = new ButtonGroup();
    otherMenu.add(item=new JRadioButtonMenuItem("Radio 1"));
    item.addActionListener(printListener);
    buttonGroup.add(item);
    otherMenu.add(item=new JRadioButtonMenuItem("Radio 2"));
    item.addActionListener(printListener);
    buttonGroup.add(item);
    otherMenu.addSeparator();
    otherMenu.add(item=new JMenuItem("Potted Plant",new ImageIcon("image.git")));
    item.addActionListener(printListener);
    //最后添加所有的菜单到菜单条上
    add(fileMenu);
    add(editMenu);
    add(otherMenu);
    }
    
    
    public static void main(String [] args){
        JFrame frame = new JFrame("Simple Menu Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setJMenuBar(new JMenuExample());
        //frame.pack();//pack 作用就是 自定义 窗口大小 JFrame 里内容多就大 少 就小
        frame.setSize(640, 480);
        frame.setVisible(true);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值