11.5事件處理
11.5.1 java事件處理流程
在事件處理的過程中,主要涉及3類對象;
1.Event Source (事件源):事件發生的場所,通常就是各個組件.
2.Event (事件):事件封閉了GUI組件上發生的特定事情,通常就是用戶對組件的一次操作.
3.Event Listener (事件監聽器):負責監聽事件源所發生的事件,並對各種事件做出響應處理.
使用示例:
import java.awt.*;
import java.awt.event.*;
public class EventQs
{
private Frame f = new Frame("測試事件");
private Button ok = new Button("確定");
private TextField tf = new TextField(30);
public void init()
{
//註冊事件監聽器
ok.addActionListener(new OkListener()); //OK按鈕的監聽類OkListener
f.add(tf);
f.add(ok , BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
//定義事件監聽器類
class OkListener implements ActionListener
{
//下面定義的方法就是事件處理器,用於響應特定的事件
public void actionPerformed(ActionEvent e)
{
System.out.println("用戶單擊了ok按鈕");
tf.setText("Hello World");
}
}
public static void main(String[] args)
{
new EventQs().init();
}
}
11.5.2事件和事件監聽器
AWT事件分爲低級事件和高級事件.
低級事件
低級事件指基於特定動作的事件.如,鼠標的進入、點擊拖放等動作。
1.ComponentEvent:組件事件,當組件尺寸、位置、顯示、隱藏、發生變化時的事件。
2.ContainerEvent:容器事件,當容器發添加組件,刪除組件時的事件。
3.WindowEvent:窗口事件,當窗口狀態發生變化時的事件。
4.FocusEvent:焦點事件,當組件得到和失去焦點時的事件。
5.KeyEvent:鍵盤事件,當鍵盤按下、鬆開、單擊的事件。
6.MouseEvent:鼠標事件,當鼠標按下、鬆開、單擊、移動的事件。
7.PaintEvent:組件繪製事件。
高級事件
1.ActionEvent:動作事件,當按鈕、菜單被點擊,文本框中按回車。
2.AdjustmentEvent:調節帶傷,在滑動條上移動滑塊時觸發。
3.ItemEvent:選項事件,當用戶選中某項和取消某項時觸發。
4.TestEvent:文本事件,當文本框裏文本發生變化時觸發。
11.5.3 事件適配器
事件適配器實現了監聽器接口,併爲該接口裏的每個方法都提供了實現。
如果監聽器接口只有一個方法,該監聽器接口就無須提供適配器,如果監聽器接口有多個方法,該監聽器接口都應該有事件適配器。
給出窗口適配器使用示例:
import java.awt.*;
import java.awt.event.*;
public class TestWindowAdapter
{
private Frame f = new Frame("測試");
private TextArea ta = new TextArea(6 , 40);
public void init()
{
f.addWindowListener(new MyListener());
f.add(ta);
f.pack();
f.setVisible(true);
}
class MyListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
ta.append("用戶試圖關閉窗口!\n");
System.exit(0);
}
}
public static void main(String[] args)
{
new TestWindowAdapter().init();
}
}