Java API 分類導覽 - java.awt.Menu add()

Menu 類別 (class) 的 add() 方法 (method) 新增 MenuItem 選項到 Menu 選單中。



修飾子與參數
public MenuItem add(MenuItem mi)
public void add(String label)


add() 有兩個的參數 (paramenter) 版本,第一個的回傳值 (return value) 為 MenuItem 型態 (type) 的物件 (object) ,另外需要同是 MenuItem 型態的參數,第二個只需要 String 型態的參數,沒有回傳值。


舉例如下
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
方法method
回傳值return value
型態type
物件object
參數parameter


您可以繼續參考
AWT 元件


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


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

沒有留言: