修飾子與參數
public void remove(int index)
public void remove(MenuComponent item)
remove() 有兩個參數版本,兩者都沒有回傳值 (return value) ,第一個參數版本需要 int 型態 (type) 的整數常數當參數 (paramenter) ,此為選項的索引值,第二個參數版本需要 MenuComponent 型態的物件 (object) 當參數,此即該選項的 MenuItem 物件。
舉例如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | 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 ); } } /* 《程式語言教學誌》的範例程式 檔名:MenuDemo.java 功能:示範 Java 程式 作者:張凱慶 時間:西元 2012 年 3 月 */ |
此例先建立四個 MenuItem 物件,分別是 "one" 、 "two" 、 "three" 、 "four" 四個選項,然後建立 Menu 物件,依序呼叫 Menu 的 add() 方法加入四個 MenuItem ,並在 "two" 與 "three" 之間呼叫 Menu 的 addSeparator() 加入分隔線
28 29 30 31 32 33 | menu = new Menu( "menu" ); menu.add(menuitem1); menu.add(menuitem2); menu.addSeparator(); menu.add(menuitem3); menu.add(menuitem4); |
建構子的最後工作為呼叫 Menu 的 getItem() 印出索引值為 2 的 MenuItem , getItemCount() 印出選項總數, isTearOff() 印出此選單是否為可拆下
41 42 43 | 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"
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | 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
沒有留言:
張貼留言