Java API 分類導覽 - java.awt 事件處理

java.awt 的事件處理有以下的事件類別

事件名稱敘述
ActionEvent處理按鈕被按下的事件
AdjustmentEvent處理捲軸滾動的事件
ItemEvent處理選項選取或取消選取相關事件
KeyAdapter已實作 KeyListener 介面的類別
KeyEvent處理鍵盤按鍵相關事件
MouseAdapter已實作 MouseListener 、 MouseMotionListener 、 MouseWheelListener 等介面的類別
MouseEvent處理滑鼠相關事件
MouseMotionAdapter已實作 MouseMotionListener 介面的類別
MouseWheelEvent處理滑鼠捲軸相關事件
TextEvent處理文字輸入相關事件
WindowAdapter已實作 WindowFocusListener 、 WindowListener 、 WindowStateListener 等介面的類別
WindowEvent處理視窗相關事件


另外有以下的傾聽者介面
介面名稱敘述
ActionListener進行按鈕事件的處理
AdjustmentListener進行捲軸事件的處理
ItemListener進行選項事件的處理
KeyListener進行鍵盤事件的處理
MouseListener進行滑鼠事件的處理
MouseMotionListener進行滑鼠移動事件的處理
MouseWheelListener進行滑鼠滾輪事件的處理
TextListener進行文字輸入事件的處理
WindowFocusListener進行視窗焦點事件的處理
WindowListener進行視窗事件的處理
WindowStateListener進行視窗狀態事件的處理


GUI 是由傾聽者介面來偵測使用者的操作,任何動作稱之為事件,藉由實作傾聽者介面的方法來設置相關事件處理。舉例如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.awt.*;
import java.awt.event.*;
  
public class MouseMotionAdapterDemo extends MouseMotionAdapter {
    Frame frame;
    Panel panel;
    Label text;
     
    public static void main(String[] args) {
        new MouseMotionAdapterDemo();
    }
      
    public MouseMotionAdapterDemo() {
        frame = new Frame("AWTDemo");
        frame.addWindowListener(new AdapterDemo());
        frame.setSize(600, 400);
         
        panel = new Panel();
        panel.addMouseMotionListener(this);
         
        text = new Label("something happened..");
         
        panel.add(text);
        frame.add(panel, BorderLayout.CENTER);
        frame.setVisible(true);
    }
     
    // from MouseMotionListener
    public void mouseDragged(MouseEvent e) {
        text.setText("x: " + e.getX() + ", y: " + e.getY());
        System.out.println("mouseDragged");
     }
     
    public void mouseMoved(MouseEvent e) {
        text.setText("x: " + e.getX() + ", y: " + e.getY());
        System.out.println("mouseMoved");
    }
}
  
class AdapterDemo extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
        System.exit(0);
    }
}
 
/* 《程式語言教學誌》的範例程式
    檔名:MouseMotionAdapterDemo.java
    功能:示範 Java 程式
    作者:張凱慶
    時間:西元 2012 年 3 月 */


此例的 MouseMotionAdapterDemo 直接繼承自 MouseMotionAdapter 類別
4
public class MouseMotionAdapterDemo extends MouseMotionAdapter {


MouseMotionListener 的 mouseDragged() 處理滑鼠拖曳的動作,所謂拖曳是指按住滑鼠按鈕然後同時移動滑鼠, mouseMoved() 則為處理滑鼠移動的動作
28
29
30
31
32
33
34
35
36
37
// from MouseMotionListener
public void mouseDragged(MouseEvent e) {
   text.setText("x: " + e.getX() + ", y: " + e.getY());
   System.out.println("mouseDragged");
}
     
public void mouseMoved(MouseEvent e) {
    text.setText("x: " + e.getX() + ", y: " + e.getY());
    System.out.println("mouseMoved");
}


編譯後執行,結果如下



中英文術語對照
類別class
方法method
事件處理event handle


您可以繼續參考
事件處理


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


參考資料
http://docs.oracle.com/javase/tutorial/uiswing/events/index.html

沒有留言: