11.6AWT的菜單
11.6.1 菜單條、菜單和菜單項
1.MenuBar:菜單條,菜單的容器。
2.Menu:菜單組件,菜單項的容器。也是MenuItem的子類,所以也可用作菜單項使用。
3.PopupMenu:上下文菜單組件(右鍵菜單組件)。
4.MenuItem發:菜單項組件。
5.CheckboxMenuItem:複選框菜單項組件。
6.MenuShortcut:菜單快捷鍵組件。
AWT添加菜單分隔符
1.調用Menu對象的addSeparator方法來添加。
2.添加new MenuItem(“-”)菜單項來添加。
import java.awt.*;
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 java.awt.event.WindowListener;
import java.sql.Savepoint;
public class SimpleMenu
{
Frame f = new Frame("測試");
MenuBar mb = new MenuBar(); //創建菜單條
Menu file = new Menu("文件"); //創建菜單
Menu edit = new Menu("編輯");
MenuItem newItem = new MenuItem("新建"); //創建菜單組件
MenuItem savaItem = new MenuItem("保存");
MenuItem exitItem = new MenuItem("退出",new MenuShortcut(KeyEvent.VK_X));
//CheckboxMenuItem 複選框組件
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("取消註解");
TextArea ta = new TextArea(8,60);
public void init ()
{
ActionListener menuListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
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(savaItem);
file.add(exitItem);
edit.add(autoWrap);
edit.addSeparator();
edit.add(copyItem);
edit.add(pasteItem);
format.add(commentItem);
format.add(cancelItem);
edit.add(new MenuItem("-"));
edit.add(format);
mb.add(file);
mb.add(edit);
f.setMenuBar(mb);
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
ta.append("用戶試圖關閉窗口");
System.exit(0);
}
});
f.add(ta);
f.pack();
f.setVisible(true);
}
public static void main(String[] args)
{
new SimpleMenu().init();
}
}