AWT菜单

本文介绍如何使用AWT(Abstract Window Toolkit)构建菜单系统,包括菜单条、菜单、上下文菜单、菜单项、复选框菜单及快捷键组件。通过实例代码展示了菜单的创建、事件监听及窗口关闭事件的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AWT中的菜单由如下类组合而成

  1. MenuBar:菜单条,菜单的容器
  2. Menu:菜单组件,菜单项的容器
  3. PopupMenu:上下文菜单组件
  4. MenuItem:菜单项组件
  5. CheckboxMenuItem:复选框菜单组件
  6. MenuShortcut:菜单快捷键组件
package com.my;

import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


public class Test{
	private Frame f=new Frame("测试");
	private MenuBar mb=new MenuBar();
	Menu file=new Menu("文件");
	Menu edit=new Menu("编辑");
	MenuItem newItem=new MenuItem("新建");
	MenuItem saveInem=new MenuItem("保存");
	//创建exitItem菜单项,指定使用“Ctrl+X”快捷键
	MenuItem exitItem=new MenuItem("退出",new MenuShortcut(KeyEvent.VK_X));
	CheckboxMenuItem autoWrap=new CheckboxMenuItem("自动换行");
	MenuItem copyItem=new MenuItem("复制");
	MenuItem pasteItem=new MenuItem("粘贴");
	Menu format=new Menu("格式");
	MenuItem commentItem=new MenuItem("注释",new MenuShortcut(KeyEvent.VK_SLASH,true));
	MenuItem cancelItem=new MenuItem("取消注释");
	private TextArea ta=new TextArea(6,40);
	public void init(){
		//以Lambda表达式创建菜单事件监听器
		ActionListener menuListener=e->{
			String cmd=e.getActionCommand();
			ta.append("单击“"+cmd+"”菜单"+"\n");
			if(cmd.equals("退出"))
			{
				System.exit(0);
			}
		};
		commentItem.addActionListener(menuListener);
		exitItem.addActionListener(menuListener);
		file.add(newItem);
		file.add(saveInem);
		file.add(exitItem);
		edit.add(autoWrap);
		edit.addSeparator();
		edit.add(copyItem);
		edit.add(pasteItem);
		format.add(commentItem);
		format.add(cancelItem);
		edit.add(new MenuItem("-"));
		//format菜单组合到edit菜单中,从而形成二级菜单
		edit.add(format);
		mb.add(file);
		mb.add(edit);
		//为f窗口设置菜单条
		f.setMenuBar(mb);
		//以匿名内部类的形式来创建事件监听对象
		f.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
		f.add(ta);
		f.pack();
		f.setVisible(true);
	}
	public static void main(String[] args) {
		new Test().init();
	}
}

运行效果图:

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值