菜单组件的基本使用

下表给出常见的菜单相关组件

菜单组件名称功能
MenuBar菜单条,菜单的容器
Menu菜单组件,菜单项的容器。它也是Menultem的子类,所以可作为菜单项使用
PopupMenu上下文菜单组件(右键菜单组件)
MenuItem菜单项组件
CheckBoxMenuItem复选框菜单项组件

 

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;

//设置菜单
public class awtmenuDemo1 {
Frame frame=new Frame();
MenuBar menuBar=new MenuBar();
//菜单组件
Menu menu1=new Menu("文件");
Menu menu2=new Menu("编辑");
Menu menu3=new Menu("格式");
//菜单项
    MenuItem menuItem1=new MenuItem("自动换行");
    MenuItem menuItem2=new MenuItem("复制");
    MenuItem menuItem3=new MenuItem("粘贴");
    MenuItem menuItem4=new MenuItem("注释",new MenuShortcut(KeyEvent.VK_Q,true));
    MenuItem menuItem5=new MenuItem("取消注释");
TextArea textArea=new TextArea(6,30);



    private  void invit(){
        menuBar.add(menu1);
        menuBar.add(menu2);


        menu2.add(menuItem1);
        menu2.add(menuItem2);
        menu2.add(menuItem3);
        menu2.add(menu3);

        menu3.add(menuItem4);
        menu3.add(menuItem5);

menuItem4.addActionListener(new ActionListener() {
    @Override
   public void actionPerformed(ActionEvent e) {
        textArea.append("你点击了菜单项:"+e.getActionCommand()+"\n");
   }
});

frame.setMenuBar(menuBar);
frame.add(textArea);
frame.pack();
frame.setVisible(true);

    }
    public static void main(String[] args) {
       new awtmenuDemo1().invit();
    }
}

PopupMenu的使用

import java.awt.*;
import java.awt.event.*;

public class awtPopupmenu {
   Frame frame=new Frame();
   TextArea textArea=new TextArea("我爱中华!",6,30);
   Panel panel=new Panel();


    PopupMenu popupMenu=new PopupMenu();
    MenuItem menu1=new MenuItem("注释");
    MenuItem menu2=new MenuItem("取消注释");
    MenuItem menu3=new MenuItem("复制");
    MenuItem menu4=new MenuItem("保存");


    private void invit(){

        popupMenu.add(menu1);
        popupMenu.add(menu2);
        popupMenu.add(menu3);
        popupMenu.add(menu4);
        panel.add(popupMenu);

        ActionListener actionListener = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                textArea.append("你点击了菜单:"+e.getActionCommand()+"\n");
            }
        };
        menu1.addActionListener(actionListener);
        menu2.addActionListener(actionListener);
        menu3.addActionListener(actionListener);
        menu4.addActionListener(actionListener);

        panel.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseReleased(MouseEvent e) {
                boolean b = e.isPopupTrigger();
                if(b){
                    popupMenu.show(panel,e.getX(),e.getY());
                }
            }
        });
        frame.add(textArea,BorderLayout.NORTH);
        frame.add(panel);
        //设置Panel的大小
        panel.setPreferredSize(new Dimension(200,200));
        frame.pack();
        frame.setVisible(true);
    }


        public static void main(String[] args) {
        new awtPopupmenu().invit();
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值