修飾子與參數
public void setShortcut(MenuShortcut s)
setShortcut() 沒有回傳值 (return value) ,需要一個 MenuShortcut 型態 (type) 的物件 (object) 當參數 (paramenter) 。
舉例如下
import java.awt.*; import java.awt.event.*; public class MenuItemDemo implements ActionListener { Frame frame; Menu menu; MenuItem menuitem1, menuitem2, menuitem3, menuitem4; public static void main(String[] args) { new MenuItemDemo(); } public MenuItemDemo() { frame = new Frame("AWTDemo"); frame.addWindowListener(new AdapterDemo()); frame.setLayout(new FlowLayout()); frame.setSize(320, 200); menuitem1 = new MenuItem(); menuitem1.addActionListener(this); menuitem1.setLabel("one"); menuitem1.setActionCommand("c1"); menuitem1.setEnabled(false); menuitem2 = new MenuItem(); menuitem2.addActionListener(this); menuitem2.setLabel("two"); menuitem2.setActionCommand("c2"); menuitem2.setShortcut(new MenuShortcut(KeyEvent.VK_A, false)); menuitem3 = new MenuItem(); menuitem3.addActionListener(this); menuitem3.setLabel("three"); menuitem3.setActionCommand("c3"); menu = new Menu("menu"); menu.add(menuitem1); menu.add(menuitem2); menu.add(menuitem3); MenuBar menubar = new MenuBar(); menubar.add(menu); frame.setMenuBar(menubar); frame.setVisible(true); System.out.println("two's action command: " + menuitem2.getActionCommand()); System.out.println("two's label: " + menuitem2.getLabel()); System.out.println("two's shortcut: " + menuitem2.getShortcut()); System.out.println("two's enabled: " + menuitem2.isEnabled()); } public void actionPerformed(ActionEvent e) { MenuItem m = (MenuItem) e.getSource(); if (m.getActionCommand() == "c2") { System.out.println("c2....."); } if (m.getActionCommand() == "c3") { menuitem2.deleteShortcut(); System.out.println("c3...."); } } } class AdapterDemo extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:MenuItemDemo.java 功能:示範 Java 程式 作者:張凱慶 時間:西元 2012 年 3 月 */
此例建立三個 MenuItem 物件,第一個建立後依序呼叫 MenuItem 的 addActionListener() 方法設定相關事件處理,並以 this 當參數, setLabel() 將選項文字設定為 "one" , setActionCommand() 將選項指令設定為 "c1" , setEnabled() 並以 false 當參數,這會使這個選項不發生作用
menuitem1 = new MenuItem(); menuitem1.addActionListener(this); menuitem1.setLabel("one"); menuitem1.setActionCommand("c1"); menuitem1.setEnabled(false);
第二個建立後依序呼叫 MenuItem 的 addActionListener() 方法設定相關事件處理,並以 this 當參數, setLabel() 將選項文字設定為 "two" , setActionCommand() 將選項指令設定為 "c2" , setShortcut() 將此選項的捷徑按鍵設定為大寫的 A 字母
menuitem2 = new MenuItem(); menuitem2.addActionListener(this); menuitem2.setLabel("two"); menuitem2.setActionCommand("c2"); menuitem2.setShortcut(new MenuShortcut(KeyEvent.VK_A, false));
第三個建立後依序呼叫 MenuItem 的 addActionListener() 方法設定相關事件處理,並以 this 當參數, setLabel() 將選項文字設定為 "three" , setActionCommand() 將選項指令設定為 "c3"
menuitem3 = new MenuItem(); menuitem3.addActionListener(this); menuitem3.setLabel("three"); menuitem3.setActionCommand("c3");
建構子的最後工作在命令列印出第二個選項的相關資訊,這是呼叫 MenuItem 的 getActionCommand() 印出指令, getLabel() 印出標籤, getShortcut() 印出按鍵捷徑 , isEnabled() 判斷是否可用
System.out.println("two's action command: " + menuitem2.getActionCommand()); System.out.println("two's label: " + menuitem2.getLabel()); System.out.println("two's shortcut: " + menuitem2.getShortcut()); System.out.println("two's enabled: " + menuitem2.isEnabled());
由於 MenuItemDemo 實作 ActionListener ,因此需要寫出 actionPerformed() ,這裡先判斷選項的指令,如果是 "c2" 就會在命令列印出 "c2....." ,如果是 "c3" 就會呼叫第二個選項 MenuItem 的 deleteShortcut() 刪除相關的按鍵捷徑,然後在命令列印出 ""c3...."
public void actionPerformed(ActionEvent e) { MenuItem m = (MenuItem) e.getSource(); if (m.getActionCommand() == "c2") { System.out.println("c2....."); } if (m.getActionCommand() == "c3") { menuitem2.deleteShortcut(); System.out.println("c3...."); } }
編譯後執行,結果如下
中英文術語對照 | |
---|---|
類別 | class |
方法 | method |
回傳值 | return value |
型態 | type |
物件 | object |
參數 | parameter |
您可以繼續參考
AWT 元件
相關目錄
Java API 分類導覽
Java 教材
首頁
參考資料
http://docs.oracle.com/javase/6/docs/api/java/awt/MenuItem.html
沒有留言:
張貼留言