常用事件分類

窗體事件(WindowEvent)、鼠標事件(MouseEvent)、鍵盤事件(KeyEvent)、動作事件(ActionEvent)

創建事件監聽器對象時可以有兩種方式:

以窗體事件作爲例子:

實現WindowListener接口和繼承WindowAdapter事件適配器

以下的例子都是用匿名內部類實現事件處理的

窗體事件(WindowEvent)

package gui;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Example05 {
public static void main(String[] args) {
final Frame f=new Frame("WindowEvent");
f.setSize(400,300);
f.setLocation(300,200);
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {    //這裏還可以實現WindowListener接口
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("windowOpended---窗體打開事件");
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println(" windowIconified---窗體圖標化事件");
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("windowDeiconified---窗體取消圖標化事件");
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("windowDeactivated---窗體停用事件");
}
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
Window window=e.getWindow();
window.setVisible(false);
window.dispose();
System.out.println("windowClosing---窗體正在關閉事件");
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("windowClosed---窗體關閉事件");
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
System.out.println("windowActivated---窗體激活事件");
}
});
}
}


鼠標事件(MouseEvent)

package gui;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Example06 {
public static void main(String[] args) {
final Frame f=new Frame("WindowEvent");
f.setLayout(new FlowLayout());
f.setSize(300,200);
f.setLocation(300,200);
f.setVisible(true);
Button but=new Button("Button");
f.add(but);
f.addWindowListener(new WindowAdapter(){   //這裏也可以使用WindowListener接口
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
Window window=e.getWindow();
window.dispose();
}
});

but.addMouseListener(new MouseListener() {

@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mouseReleased---鼠標放開事件");
}

@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mousePressed---鼠標按下事件");
}

@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mouseExited---鼠標移除按鈕區域事件");
}

@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mouseEntered---鼠標進入按鈕區域事件");
}

@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
if(e.getButton()==e.BUTTON1){
System.out.println("鼠標左擊事件");
}
if(e.getButton()==e.BUTTON2){
System.out.println("鼠標中擊事件");
}
if(e.getButton()==e.BUTTON3){
System.out.println("鼠標右擊事件");
}
System.out.println("點擊次數:"+e.getClickCount());
System.out.println("mouseClicked---鼠標完成點擊事件");
}
});
}
}



鍵盤事件(KeyEvent)

package gui;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Example07 {
public static void main(String[] args) {
final Frame f=new Frame("WindowEvent");
f.setLayout(new FlowLayout());
f.setSize(400,200);
f.setLocation(300,200);
f.setVisible(true);
TextField tf=new TextField(30);
f.add(tf);
f.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
Window window=e.getWindow();
window.dispose();
}
});
tf.addKeyListener(new KeyAdapter(){
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
int keyCode=e.getKeyCode();
String s=KeyEvent.getKeyText(keyCode);
System.out.print("輸入的內容爲:"+s+",");
System.out.println("對應的keyCode爲:"+keyCode);
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("keyReleased---釋放某個鍵事件");
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("keyTyped---鍵入某個鍵事件");
}
});
}
}


動作事件(ActionEvent)

動作事件不代表某個具體的動作,只是代表某個動作發生了


發佈了76 篇原創文章 · 獲贊 5 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章