1. 什么是java的事件处理机制
JAVA中当事件发生时,他不会进行广播,而是仅仅向关心此事件的对象发送消息。那么他怎么知道谁“关心”此事件呢。
这就要求关心此事件的对象,先行向事件的发出方进行注册,表示我关心此事件,当事件发生时请通知我。
【简单来说】:就是事件的“处理方”向事件的“发出方”先行注册,当事件发生时,事件的“发生方”负责通知事件的“处理方”。
譬如我编写一个窗口,用到了JFrame,我想实现一个功能,当按下Q键时,窗口关闭。
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
public class TestFrame extends JFrame {
private static final long serialVersionUID = 5671798241966272024L;
public static void main(String[] args) {
new TestFrame();
}
public TestFrame() {
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
addKeyListener(new MyKeyListener());// 这句话就是所谓的注册事件。
// MyKeyListener作为事件的处理方,向事件的触发方TestFrame进行注册。
// 这句话的意思是说,MyKeyListener对TestFrame说,我对于你的键盘事件感兴趣,如果有键盘事件请告诉我。
// 而TestFrame有一个列表保存着MyKeyListener对象的引用。当键盘按下时,他会列表中所有引用,调用KeyPressed方法。
// 当键盘松开时还会调用keyReleased方法,但是我们对于键盘松开不太关心,所以下面的类,我们可以只编写KeyPressed方法。
}
private final class MyKeyListener extends KeyAdapter {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_Q) {
System.exit(0);
}
}
}
}
2. 璺姹傦细绠杩颁簨浠跺勭悊链哄埗銆 鏄鍏充簬java锲惧舰鐢ㄦ埛鐣岄溃镄勚
鍦ㄥ浘褰㈢敤鎴风晫闱涓锛
绋嫔簭鍜岀敤鎴风殑浜や簰鏄阃氲繃缁勪欢鍝嶅簲钖勭崭簨浠舵潵瀹炵幇镄勚
渚嫔傦纴
鐢ㄦ埛
鍗曞嚮浜嗕竴涓鎸夐挳锛
镒忓懗镌鍙戠敓浜嗘寜阍镄勫崟鍑讳簨浠讹绂
阃変腑涓嬫媺妗嗕腑镄勪竴涓阃夐”锛
镒忓懗镌鍙戠敓浜
涓涓阃夐”浜嬩欢銆傚湪
Java
涓鑳戒骇鐢熶簨浠剁殑缁勪欢鍙锅氢簨浠舵簮锛屽傛寜阍銆傚傛灉甯屾湜瀵瑰崟鍑绘寜阍浜
浠惰繘琛屽勭悊锛屽彲缁欎簨浠舵簮锛堟寜阍锛夋敞鍐屼竴涓浜嬩欢鐩戝惉鍣锛埚傚寘钖鎸夐挳镄勫瑰櫒锛夛纴濡傚悓绛捐浜
涓涓濮旀墭钖埚悓锛
褰扑簨浠舵簮鍙戠敓浜嬩欢镞讹纴
浜嬩欢鐩戝惉鍣ㄥ氨浠f浛浜嬩欢婧愬瑰彂鐢熺殑浜嬩欢杩涜屽勭悊锛
杩
灏辨槸镓璋撶殑濮旀墭浜嬩欢澶勭悊链哄埗銆
3. 1.java的事件处理机制是怎样的
java事件处理机制你必须得明确以下几个概念:
核心:java采用的是事件源——事件监听器模型
1:事件(event):是指一个状态的改变,或者一个活动的发生。例如,简单常见的是单击一个按钮,或者输入一个按键都是一个事件。
2:事件源(event source):能够产生事件的对象称为事件源,如文本框,按钮,下拉列表等。
3:事件监听器(event listener):需要一个对象对事件源进行监听,以便对发生的事件做出处理,该对象就是事件监听器。事件源通过调用相应的方法将某个对象作为自己的监听器。无论应用程序还是小程序都采用这一机制。
例,对于按钮,注册监听器的方法是 addActionListener(监视器);:
4: 事件源获得监听器之后,相应的操作就会导致事件的发生,并通知监听器,监听器就会做出相应的处理。
5:处理事件的接口:监听器负责处理事件源发生的事件。为了处理事件源发生的事件,监听器会自动调用一个方法来处理事件,该方法定义在相应事件的接口中。
4. java中什么是事件源,事件的处理过程是什么
在java的图形界面开发中,要让图形界面接收到用户的操作,就要给各个组件添加事件处理机制。
事件 : 为了实现用户对图形界面组件的操作,定义了一些事件
鼠标事件:单击,双击,滚轮等....
键盘事件 按下键盘,松开按键等...
焦点事件 :焦点获得 ,焦点失去...
窗口事件: 窗口打开,窗口关闭等....
事件源: 发声事件的场所. 比如按钮被点击,那么事件源就是按钮
文本框获得焦点. 那么事件源就是文本框
窗口被关闭,那么事件源就是窗口
事件源-----产生----->事件------>被事件监听器发现------>进入事件处理代码
importjava.awt.Frame;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
{//窗口就是事件源
publicDemoAction(){
this.setTitle("窗口关闭");
this.setLocation(400,200);
this.setSize(360,280);
//给窗口绑定一个事件监听器
this.addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowClosing(WindowEvente){//事件WindowEvent
System.exit(0);//关闭窗口事件,那么退出jvm
}
});
this.setVisible(true);
}
publicstaticvoidmain(String[]args){
newDemoAction();
}
}