修飾子與參數
public void addChangeListener(ChangeListener l)
addChangeListener() 沒有回傳值 (return value) ,需要 ChangeListener 型態 (type) 的物件 (object) 當參數 (paramenter) 。
舉例如下
import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class addChangeListenerDemo implements ChangeListener { int count = 0; public static void main(String[] args) { new addChangeListenerDemo(); } public addChangeListenerDemo() { JFrame frame = new JFrame("SwingDemo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton demo = new JButton("demo"); demo.addChangeListener(this); JCheckBox demo2 = new JCheckBox("demo2"); demo2.addChangeListener(this); frame.setLayout(new FlowLayout()); frame.add(demo); frame.add(demo2); frame.pack(); frame.setVisible(true); } public void stateChanged(ChangeEvent e) { count++; System.out.println("state change:" + count); } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:addChangeListenerDemo.java 功能:示範 Java 程式 作者:張凱慶 時間:西元 2012 年 9 月 */
此例的 addChangeListenerDemo 直接實作 ChangeListener 介面
public class addChangeListenerDemo implements ChangeListener {
然後建立 JButton 與 JCheckBox ,兩者都是 AbstractButton 的子類別 (subclass) ,因此都呼叫 addChangeListener() 設定事件處理, 並以 this 當參數
JButton demo = new JButton("demo"); demo.addChangeListener(this); JCheckBox demo2 = new JCheckBox("demo2"); demo2.addChangeListener(this);
由於 addChangeListenerDemo 實作 ChangeListener 介面,因此要寫出 stateChanged()
public void stateChanged(ChangeEvent e) { count++; System.out.println("state change:" + count); }
無論點擊 demo 按鈕或選取、取消選取 demo2 選項都會造成狀態改變,因此 count 會依狀態改變次數遞增,並將 count 的值印在命令列。
編譯後執行,結果如下
中英文術語對照 | |
---|---|
類別 | class |
方法 | method |
回傳值 | return value |
型態 | type |
物件 | object |
參數 | parameter |
子類別 | subclass |
您可以繼續參考
Swing 元件
- ButtonGroup
- JComponent
- AbstractButton
- JButton
- JToggleButton
- JCheckBox
- JRadioButton
- JMenuItem
- JCheckBoxMenuItem
- JMenu
- JRadioButtonMenuItem
- JColorChooser
- JComboBox
- JFileChooser
- JInternalFrame
- JLabel
- JLayeredPane
- JDesktopPane
- JList
- JMenuBar
- JOptionPane
- JPanel
- JPopupMenu
- JProgressBar
- JRootPane
- JScrollBar
- JScrollPane
- JSeparator
- JSlider
- JSpinner
- JSplitPane
- JTabbedPane
- JTable
- text.JTextComponent
- JEditorPane
- JTextPane
- JTextField
- JFormattedTextField
- JPasswordField
- JTextArea
- JToolBar
- JToolTip
- JTree
- JViewport
- JDialog
- JFrame
- JWindow
相關目錄
Java API 分類導覽
Java 教材
首頁
參考資料
http://docs.oracle.com/javase/6/docs/api/javax/swing/AbstractButton.html
沒有留言:
張貼留言