Java API 分類導覽 - java.awt.MenuItem setActionCommand()

MenuItem 類別 (class) 的 setActionCommand() 方法 (method) 用來設定選項的指令。



修飾子與參數
public void setActionCommand(String command)


setActionCommand() 沒有回傳值 (return value) ,需要一個 String 型態 (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

沒有留言: