視窗關閉方法:事件監聽機制
事件監聽機制
A:事件源:事件發生的地方
B:事件:就是要發生的事情
C:事件處理:就是針對發生的事情做出的處理方案
D:事件監聽:就是把事件源和事件關聯起來
舉例:人受傷事件
事件源:人(具體對象)
Person p1 = new Person("張珊");
Person p1 = new Person("李四");
事件:受傷
受傷的種類很多是以受傷要定成接口
interface 受傷接口{
一拳();
一腳();
一闆磚();
}
事件處理:
受傷處理類 implements 受傷接口{
一拳(){System.out.println("鼻子流血啦,送到衛生間洗洗")}
一腳(){System.out.println("暈倒了,送到通風處")}
一闆磚(){System.out.println("頭破血流,送到太平間")}
}
事件監聽;
p1.注冊監聽(受傷接口)
窗體關閉案例
package cn.itcast_04;
import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class 窗體關閉案例 {
public static void main(String[] args) {
// 建立窗體對象
Frame f = new Frame("窗體關閉案例");
//設定窗體屬性
f.setBounds(400, 200, 400, 300);
//設定窗體可見
f.setVisible(true);
//讓窗體關閉
//事件源:窗體對象
//事件:對窗體的處理
//事件處理:關閉窗體
//事件監聽:
f.addWindowListener(new WindowListener() {
@Override
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowClosing(WindowEvent e) {
//關閉視窗
System.exit(0);
}
@Override
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
@Override
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
});
}
}
用擴充卡改進窗體關閉案例
package cn.itcast_04;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class 用擴充卡改進窗體關閉案例 {
public static void main(String[] args) {
// 建立窗體對象
Frame f = new Frame("窗體關閉案例");
//設定窗體屬性
f.setBounds(400, 200, 400, 300);
//設定窗體可見
f.setVisible(true);
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}