Java API 分類導覽 - java.awt.Component addKeyListener()

Component 類別 (class) 的 addKeyListener() 方法 (method) 用來設定元件鍵盤按鍵的事件處理。



修飾子與參數
public void addKeyListener(KeyListener l)


addKeyListener() 沒有回傳值 (return value) ,需要一個 KeyListener 型態 (type) 的物件 (object) 當參數 (paramenter) 。


舉例如下
import java.awt.*;
import java.awt.event.*;

public class KeyListenerDemo implements KeyListener {
    Frame frame;
    Label a1, a2;
    
    public static void main(String[] args) {
        new KeyListenerDemo();
    }
    
    public KeyListenerDemo() {
        frame = new Frame("AWTDemo");
        frame.addWindowListener(new AdapterDemo());
        frame.addKeyListener(this);
        frame.setSize(640, 480);
        frame.setLayout(null);

        a1 = new Label("demo1");
        a1.setSize(200, 30);
        a1.setLocation(100, 30);
        frame.add(a1);
        a2 = new Label("demo2");
        a2.setSize(200, 30);
        a2.setLocation(100, 70);
        frame.add(a2);
        
        frame.setVisible(true);
    }
    
    public void keyTyped(KeyEvent e) {
        a1.setText("which : " + e.getKeyChar());
    }
    public void keyPressed(KeyEvent e) {
        a2.setText("Key pressed!");
    }
    public void keyReleased(KeyEvent e) {
        a2.setText("Key released!");
    }
}

class AdapterDemo extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:KeyListenerDemo.java
    功能:示範 Java 程式 
    作者:張凱慶
    時間:西元 2012 年 3 月 */


此例的 KeyListenerDemo 類別實作 KeyListener 介面
public class KeyListenerDemo implements KeyListener {


然後利用建構子設定類別的執行方式,建立視窗的 frame 之後,便呼叫 addKeyListener() ,並以 this 作參數
frame.addKeyListener(this);


KeyListenerDemo 啟動後,按下鍵盤按鍵就會 "Key pressed!" 與按鍵字元名稱。


由於 KeyListenerDemo 實作 KeyListener ,因此 KeyListenerDemo 就是屬於 KeyListener 型態。也由於實作,因此底下要把 KeyListener 的方法都實際寫出來。


編譯後執行,結果如下



中英文術語對照
類別class
方法method
回傳值return value
型態type
物件object
參數parameter


您可以繼續參考
AWT 元件


相關目錄
Java API 分類導覽
Java 教材
首頁


參考資料
http://docs.oracle.com/javase/6/docs/api/java/awt/Component.html

沒有留言: