package com.awt;
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.PopupMenu;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class SimpleMenu {
private Frame f = new Frame("测试");
private MenuBar mb = new MenuBar();
PopupMenu pop = new PopupMenu();
Menu file = new Menu("文件");
Menu edit = new Menu("编辑");
MenuItem newItem = new MenuItem("新建");
MenuItem saveItem = new MenuItem("保存");
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(30, 100);
// Menu listener
ActionListener menuListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
ta.append("单击'" + cmd + "'菜单" + "\n");
if (cmd.equals("退出")) {
System.exit(0);
}
}
};
public void init() {
commentItem.addActionListener(menuListener);
exitItem.addActionListener(menuListener);
file.add(newItem);
file.add(saveItem);
file.add(exitItem);
edit.add(autoWrap);
edit.addSeparator();
edit.add(copyItem);
edit.add(pasteItem);
edit.add(new MenuItem("-"));
edit.add(format);
format.add(commentItem);
format.add(cancelItem);
pop.addSeparator();
pop.add(new MenuItem("-test-"));
ta.add(pop);
ta.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
pop.show(ta, e.getX(), e.getY());
}
}
});
mb.add(file);
mb.add(edit);
f.setMenuBar(mb);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
ta.append("用户试图关闭窗口!\n");
System.exit(0);
}
});
f.add(ta);
f.pack();
f.setVisible(true);
}
public static void main(String[] args) {
new SimpleMenu().init();
}
}