修飾子與參數
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
沒有留言:
張貼留言