修飾子與參數
public int getSelectedIndex()
getSelectedIndex() 的回傳值 (return value) 為 int 型態 (type) 的整數常數,非物件 (object) ,不需要參數 (paramenter) 。
舉例如下
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
沒有留言:
張貼留言