Java API 分類導覽 - java.awt.Menu

Menu 類別 (class) 用來建立選單。



修飾子
public class Menu


父類別
java.awt.MenuItem


實作介面
MenuContainer
Serializable
Accessible


建構子
Menu()
Menu(String label)
Menu(String label, boolean tearOff)


常用方法
名稱敘述
add()新增選項到選單中
addSeperator()新增分隔線到選單中
getItem()依索引值取得選項
getItemCount()取得選項總數
insert()插入新的選項
insertSeperator()插入新的分隔線
isTearOff()判斷此選單是否可拆解成獨立的視窗
remove()移除選項
removeAll()移除所有選項


舉例如下
import java.awt.*;
import java.awt.event.*;

public class MenuDemo implements ActionListener {
    Frame frame;
    Menu menu;
    MenuItem menuitem1, menuitem2, menuitem3, menuitem4;
    
    public static void main(String[] args) {
        new MenuDemo();
    }
    
    public MenuDemo() {
        frame = new Frame("AWTDemo");
        frame.addWindowListener(new AdapterDemo());
        frame.setLayout(new FlowLayout());
        frame.setSize(320, 200);
        
        menuitem1 = new MenuItem("one");
        menuitem1.addActionListener(this);
        menuitem2 = new MenuItem("two");
        menuitem2.addActionListener(this);
        menuitem3 = new MenuItem("three");
        menuitem3.addActionListener(this);
        menuitem4 = new MenuItem("four");
        menuitem4.addActionListener(this);
        
        menu = new Menu("menu");
        menu.add(menuitem1);
        menu.add(menuitem2);
        menu.addSeparator();
        menu.add(menuitem3);
        menu.add(menuitem4);
        
        MenuBar menubar = new MenuBar();
        menubar.add(menu);
        frame.setMenuBar(menubar);
        
        frame.setVisible(true);
        
        System.out.println("getItem(2): " + menu.getItem(2));
        System.out.println("getItemCount: " + menu.getItemCount());
        System.out.println("isTearOff: " + menu.isTearOff());
    }

    public void actionPerformed(ActionEvent e) {
        MenuItem m = (MenuItem) e.getSource();
        if (m.getLabel() == "one") {
            menu.insert("new", 1);
            System.out.println("insert");
        }
        if (m.getLabel() == "two") {
            menu.insertSeparator(2);
            System.out.println("insertSeperator");
        }
        if (m.getLabel() == "three") {
            menu.remove(1);
            System.out.println("remove");
        }
        if (m.getLabel() == "four") {
            menu.removeAll();
            System.out.println("removeAll");
        }
    }
}

class AdapterDemo extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:MenuDemo.java
    功能:示範 Java 程式 
    作者:張凱慶
    時間:西元 2012 年 3 月 */


此例先建立四個 MenuItem 物件,分別是 "one" 、 "two" 、 "three" 、 "four" 四個選項,然後建立 Menu 物件,依序呼叫 Menu 的 add() 方法加入四個 MenuItem ,並在 "two" 與 "three" 之間呼叫 Menu 的 addSeparator() 加入分隔線
menu = new Menu("menu");
menu.add(menuitem1);
menu.add(menuitem2);
menu.addSeparator();
menu.add(menuitem3);
menu.add(menuitem4);


建構子的最後工作為呼叫 Menu 的 getItem() 印出索引值為 2 的 MenuItem , getItemCount() 印出選項總數, isTearOff() 印出此選單是否為可拆下
System.out.println("getItem(2): " + menu.getItem(2));
System.out.println("getItemCount: " + menu.getItemCount());
System.out.println("isTearOff: " + menu.isTearOff());


由於 MenuDemo 實作 ActionListener ,因此需要實做 actionPerformed() ,這裡設計成點擊選單不同選項執行相關程式,如點擊 "one" 就呼叫 Menu 的 insert() 插入一個新選項,同時在命令列印出 "insert" ,點擊 "two" 就呼叫 Menu 的 insertSeparator() 插入一個新分隔線,同時在命令列印出 "insertSeperator" ,點擊 "three" 就呼叫 Menu 的 remove() 移除索引值為 1 的選項,同時在命令列印出 "remove" ,點擊 "four" 就呼叫 Menu 的 removeAll() 移除所有選項,同時在命令列印出 "removeAll"
public void actionPerformed(ActionEvent e) {
    MenuItem m = (MenuItem) e.getSource();
    if (m.getLabel() == "one") {
        menu.insert("new", 1);
        System.out.println("insert");
    }
    if (m.getLabel() == "two") {
        menu.insertSeparator(2);
        System.out.println("insertSeperator");
    }
    if (m.getLabel() == "three") {
        menu.remove(1);
        System.out.println("remove");
    }
    if (m.getLabel() == "four") {
        menu.removeAll();
        System.out.println("removeAll");
    }
}


編譯後執行,結果如下



中英文術語對照
類別class
建構子constructor
方法method


您可以繼續參考
AWT 元件


相關目錄
Java API 分類導覽
Java 教材
首頁


參考資料
http://docs.oracle.com/javase/6/docs/api/java/awt/Menu.html

沒有留言: