java AWT菜单

来源:互联网 发布:linux把ip写入配置文件 编辑:程序博客网 时间:2024/06/06 01:32

菜单条,菜单和菜单项:

MenuBar:菜单条,菜单的容器。
Menu:菜单组件,菜单项的容器。它也是MenuItem的子类,所以可作为菜单项使用。
PopupMenu:上下文菜单组件(右键菜单组件)。
MenuItem:菜单项组件。
CheckboxMenuItem:复选框菜单项组件。
MenuShortcut:菜单快捷组件。

Menu,MenuItem的构造器都可以接收一个字符串参数。该字符串作为其对应菜单,菜单项上的标签文本。
MenuItem还可以接收一个MenuShortcut对象,该对象用于指定该菜单项的快捷键。如Ctrl+A,快捷方式通过以下代码创建:
MenuShortcut ms = new MenuShortcut(KeyEvent.VK_A);
如果该快捷键还需要Shift键辅助,则可以使用如下代码:
MenuShortcut ms = new MenuShortcut(KeyEvent.VK_A, true);
AWT中添加菜单分隔符有如下两种方法:
1.调用Menu对象的addSeparator()方法来添加菜单分隔线。
2.使用添加new MenuItem(“-“)的方法来添加菜单分隔线。

菜单使用步骤:
1.创建MenuItem,Menu和MenuBar对象。
2.调用Menu的add()方法将多个MenuItem组合成菜单(也可将另一个Menu对象组合进来,从而形成二级菜单)。
3.调用MenuBar的add()方法将多个Menu组合成菜单条。
4.调用Frame对象的setMenuBar()方法为该窗口添加菜单条。

 package javaAWT;import java.awt.CheckboxMenuItem;import java.awt.Frame;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.MenuShortcut;import java.awt.TextArea;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.sound.midi.VoiceStatus;public class SimpleMenu {    private Frame frame = new Frame("MenuBar");    private MenuBar mBar = new MenuBar();    Menu file = new Menu("File");    Menu edit = new Menu("Edit");    MenuItem newItem = new MenuItem("New File");    MenuItem saveItem = new MenuItem("Save");    //创建exitItem菜单项,指定用“Ctrl+x”快捷键    MenuItem exitItem = new MenuItem("Exit", new MenuShortcut(KeyEvent.VK_X));    CheckboxMenuItem autoWrap = new CheckboxMenuItem("Auto Wrap");    MenuItem copyItem = new MenuItem("Copy");    MenuItem pasteItem = new MenuItem("Paste");    Menu format = new Menu("Format");    // 创建commentItem菜单项,指定用“Ctrl+Shift+/” 快捷键    MenuItem commentItem = new MenuItem("Comment", new MenuShortcut(KeyEvent.VK_SLASH, true));    MenuItem cancelItem = new MenuItem("Cancel");    private TextArea tArea = new TextArea(6, 40);    public void init() {        // 以匿名内部类的形式创建菜单监听器        ActionListener menuListener = new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                // TODO Auto-generated method stub                String cmd = e.getActionCommand();                tArea.append("Clicked " + cmd + " Menu " + "\n");                if (cmd.equals("Exit")) {                    System.exit(0);                }            }           };        // 为commentItem菜单项添加事件监听器        commentItem.addActionListener(menuListener);        exitItem.addActionListener(menuListener);        //为file菜单添加菜单        file.add(newItem);        file.add(saveItem);        file.add(exitItem);        // 为edit菜单添加菜单项        edit.add(autoWrap);        edit.addSeparator();        edit.add(copyItem);        edit.add(pasteItem);        // 为format菜单添加菜单项        format.add(commentItem);        format.add(cancelItem);        // 使用添加new MenuItem("-")的方式添加菜单分隔线        edit.add(new MenuItem("-"));        //将format菜单组合到edit菜单中,形成二级菜单         edit.add(format);        //将file, edit菜单添加到mb菜单中        mBar.add(file);        mBar.add(edit);        // 为frame窗口设置菜单条        frame.setMenuBar(mBar);        // 以匿名内部类的形式来创建事件监听器对象        frame.addWindowListener(new WindowAdapter() {            @Override            public void windowClosing(WindowEvent e) {                // TODO Auto-generated method stub                super.windowClosing(e);                System.exit(0);            }        });        frame.add(tArea);        frame.pack();        frame.setVisible(true);    }    public static void main(String[] args) {        new SimpleMenu().init();    }}

这里写图片描述

这里写图片描述