修飾子與參數
public void addItemListener(ItemListener l)
addItemListener() 沒有回傳值 (return value) ,需要 ItemListener 型態 (type) 的物件 (object) 當參數 (paramenter) 。
舉例如下
import java.awt.*;
import java.awt.event.*;
public class ChoiceDemo implements ItemListener {
Frame frame;
Choice choice;
public static void main(String[] args) {
new ChoiceDemo();
}
public ChoiceDemo() {
frame = new Frame("AWTDemo");
frame.addWindowListener(new AdapterDemo());
frame.setLayout(new FlowLayout());
choice = new Choice();
choice.addItemListener(this);
choice.add("one");
choice.add("two");
choice.add("three");
choice.add("remove all");
choice.select("three");
frame.add(choice);
frame.pack();
frame.setVisible(true);
for (int i = 0;i < choice.getItemCount();i++) {
System.out.println(i + " : " + choice.getItem(i));
}
}
public void itemStateChanged(ItemEvent e) {
Choice c = (Choice) e.getSource();
System.out.println("index: " + c.getSelectedIndex());
System.out.println("item: " + c.getSelectedItem());
if (c.getSelectedItem() == "one") {
c.insert("demo", 1);
}
if (c.getSelectedItem() == "two") {
c.remove("one");
}
if (c.getSelectedItem() == "three") {
c.remove(1);
}
if (c.getSelectedItem() == "remove all") {
c.removeAll();
}
}
}
class AdapterDemo extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:ChoiceDemo.java
功能:示範 Java 程式
作者:張凱慶
時間:西元 2012 年 3 月 */此例的 ChoiceDemo 直接實作 ItemListener 介面
public class ChoiceDemo implements ItemListener {先建立 Choice 型態的物件後,接下來呼叫 Choice 型態的 addItemListener() 設定事件處理, 並以 this 當參數,然後依序呼叫 Choice 型態的 add() ,加入四個選項標籤後,最後呼叫 Choice 型態的 select() ,並以其中一個標籤當預設選項
choice = new Choice();
choice.addItemListener(this);
choice.add("one");
choice.add("two");
choice.add("three");
choice.add("remove all");
choice.select("three");建構子的最後一個工作是利用迴圈,並呼叫 Choice 的 getItemCount() 取得選項總數當迴圈結束條件,然後在命令列呼叫 Choice 的 getItem() 印出每個選項的資訊
for (int i = 0;i < choice.getItemCount();i++) {
System.out.println(i + " : " + choice.getItem(i));
}由於 Choice 實作 ItemListener 介面,因此要寫出 itemStateChanged()
public void itemStateChanged(ItemEvent e) {
Choice c = (Choice) e.getSource();
System.out.println("index: " + c.getSelectedIndex());
System.out.println("item: " + c.getSelectedItem());
if (c.getSelectedItem() == "one") {
c.insert("demo", 1);
}
if (c.getSelectedItem() == "two") {
c.remove("one");
}
if (c.getSelectedItem() == "three") {
c.remove(1);
}
if (c.getSelectedItem() == "remove all") {
c.removeAll();
}
}只要有文字標籤被選取,就呼叫 Choice 的 getSelectedIndex() 印出選項的索引值, getSelectedItem() 印出選項的文字標籤,然後判斷是哪個選項,如果 one 被選取,就呼叫 Choice 的 insert() 插入新的選項,如果 two 被選取,就呼叫 Choice 的 remove() 移除掉 one ,如果 three 被選取,就移除掉索引值為 1 的選項,如果 remove all 被選取,就呼叫 Choice 的 removeAll() 移除掉所有選項。
編譯後執行,結果如下

| 中英文術語對照 | |
|---|---|
| 類別 | class |
| 方法 | method |
| 回傳值 | return value |
| 型態 | type |
| 物件 | object |
| 參數 | parameter |
您可以繼續參考
AWT 元件
相關目錄
Java API 分類導覽
Java 教材
首頁
參考資料
http://docs.oracle.com/javase/6/docs/api/java/awt/Choice.html
沒有留言:
張貼留言