修飾子與參數
public void select(int index)
select() 沒有回傳值 (return value) ,需要一個 int 型態 (type) 的整數參數 (paramenter) ,非物件 (object) 。
舉例如下
import java.awt.*;
import java.awt.event.*;
public class ListDemo implements ItemListener, ActionListener {
Frame frame;
List list;
public static void main(String[] args) {
new ListDemo();
}
public ListDemo() {
frame = new Frame("AWTDemo");
frame.addWindowListener(new AdapterDemo());
frame.setLayout(new FlowLayout());
list = new List();
list.addItemListener(this);
list.addActionListener(this);
list.add("one");
list.add("two");
list.add("three");
list.add("four");
list.setMultipleMode(true);
list.select(2);
frame.add(list);
frame.pack();
frame.setVisible(true);
System.out.println("rows: " + list.getRows());
for (int i = 0; i < list.getItemCount(); i++) {
System.out.println(i + " : " + list.getItem(i));
}
System.out.println("mode: " + list.isMultipleMode());
System.out.println("3: " + list.isIndexSelected(2));
}
public void itemStateChanged(ItemEvent e) {
List l = (List) e.getSource();
System.out.println("index: " + l.getSelectedIndex());
System.out.println("item: " + l.getSelectedItem());
if (l.getSelectedItem() == "one") {
l.replaceItem("new", 1);
System.out.println("replaceItem");
}
if (l.getSelectedItem() == "two") {
System.out.println("two");
}
if (l.getSelectedItem() == "three") {
l.remove(1);
System.out.println("remove");
}
if (l.getSelectedItem() == "four") {
l.removeAll();
System.out.println("removeAll");
}
}
public void actionPerformed(ActionEvent e) {
System.out.println("double clicked: " + list.getSelectedItem());
int[] iA = list.getSelectedIndexes();
String[] sA = list.getSelectedItems();
for (int i = 0; i < iA.length; i++) {
System.out.println("selected index: " + iA[i]);
System.out.println("selected item: " + sA[i]);
}
list.deselect(0);
list.deselect(1);
list.deselect(2);
list.deselect(3);
}
}
class AdapterDemo extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
/* 《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:ListDemo.java
功能:示範 Java 程式
作者:張凱慶
時間:西元 2012 年 3 月 */此例的 ListDemo 直接實作 ItemListener 與 ActionListener 介面
public class ListDemo implements ItemListener, ActionListener {先建立 List 型態的物件後,接下來呼叫 List 型態的 addItemListener() 與 addActionListener() 設定事件處理,並以 this 當參數,然後依序呼叫 List 型態的 add() ,加入四個選項標籤後,再來呼叫 List 型態的 setMultipleMode() ,以 true 當參數設定可複選,最後呼叫 List 型態的 select() ,並以其中一個標籤當預設選項
list = new List();
list.addItemListener(this);
list.addActionListener(this);
list.add("one");
list.add("two");
list.add("three");
list.add("four");
list.setMultipleMode(true);
list.select(2);建構子最後工作是在命令列印出相關訊息,先呼叫 List 型態的 getRows() 印選項的列數,然後利用迴圈,並呼叫 List 的 getItemCount() 取得選項總數當迴圈結束條件,並且呼叫 List 的 getItem() 印出每個選項的資訊,然後分別呼叫 List 的 isMultipleMode() 與 isIndexSelected() 印出是否為多選與是否以預設選項為索引值 2
System.out.println("rows: " + list.getRows());
for (int i = 0; i < list.getItemCount(); i++) {
System.out.println(i + " : " + list.getItem(i));
}
System.out.println("mode: " + list.isMultipleMode());
System.out.println("3: " + list.isIndexSelected(2));由於 List 實作 ItemListener 介面,因此要寫出 itemStateChanged()
public void itemStateChanged(ItemEvent e) {
List l = (List) e.getSource();
System.out.println("index: " + l.getSelectedIndex());
System.out.println("item: " + l.getSelectedItem());
if (l.getSelectedItem() == "one") {
l.replaceItem("new", 1);
System.out.println("replaceItem");
}
if (l.getSelectedItem() == "two") {
System.out.println("two");
}
if (l.getSelectedItem() == "three") {
l.remove(1);
System.out.println("remove");
}
if (l.getSelectedItem() == "four") {
l.removeAll();
System.out.println("removeAll");
}
}只要有文字標籤被選取,就呼叫 List 的 getSelectedIndex() 印出選項的索引值, getSelectedItem() 印出選項的文字標籤,然後判斷是哪個選項,如果 one 被選取,就呼叫 List 的 replaceItem() 置換索引值為 1 的選項,並在命令列印出 "replaceItem" 的訊息,如果 two 被選取,就在命令列印出 "two" 的訊息,如果 three 被選取,就呼叫 List 的 remove() 移除掉索引值為 1 的選項,如果 four 被選取,就呼叫 List 的 removeAll() 移除掉所有選項。
也由於 List 實作 ActionListener 介面,因此要寫出 actionPerformed()
public void actionPerformed(ActionEvent e) {
System.out.println("double clicked: " + list.getSelectedItem());
int[] iA = list.getSelectedIndexes();
String[] sA = list.getSelectedItems();
for (int i = 0; i < iA.length; i++) {
System.out.println("selected index: " + iA[i]);
System.out.println("selected item: " + sA[i]);
}
list.deselect(0);
list.deselect(1);
list.deselect(2);
list.deselect(3);
}任何選項被連續點擊兩次,就會呼叫 List 的 getSelectedItem() ,並在命令列印出是哪個選項。接著呼叫 List 的 getSelectedIndexes() 與 getSelectedItems() 取得所有複選選項的索引值與文字標籤,依序在命令列印出。最後依序呼叫 List 的 deselect() ,取消所有選項的選取。
編譯後執行,結果如下

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