JAVA中事件处理的总结
2013-06-03 11:47
549 查看
1. 事件在JAVA SE的桌面开发是经常用到的,没有事件的组件就像人没有生命一样。有事件必有事件源,要想完成某一功能必须有事件的处理方法,组件和事件相互配合、相互协调才能完成我们想要的结果。事件是一个对象,是对一个事件类型的描述;产生事件的组件我们通常叫做事件源;要想完成某一功能还需有事件处理的方法。
2. 事件处理的主要步骤:
1. 首先产生监听器,监听是否有事件源的产生。
2. 在要实现具有事件处理功能的组件上注册监听器。
3. 注册监听器的组件产生事件源,并将事件对象返回给监听器。
4. 有监听器调用相应的方法处理事件。
3.注册事件监听器的三种方法:
1.通过接口实现
package com.neusoft;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class EventThrouthInterface extends JFrame implements ActionListener {
private JButton jb;
public EventThrouthInterface() {
jb = new JButton("确定");
jb.addActionListener(this);
this.add(jb);
this.setSize(300, 200);
this.setDefaultCloseOperation(3);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
this.jb.setText("事件响应了");
}
public static void main(String[] args) {
new EventThrouthInterface();
}
}
2.事件适配器。事件适配器和匿名内部类的方式基本相同,只不过适配器是JAVA中为了简化编程而提供的类,该类默认的实现了相应事件接口中的方法。比如WindowListener接口对应的事件适配器是WindowAdapter,而KeyListener对应的适配器接口是KeyAdapter,这样通过适配器我们就省去了通过接口实现必须实现所有抽象方法的烦恼,应为适配器中已经实现了所有的抽象方法,我们只需重写我们想要实现的方法就可以了。
package com.neusoft;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
public class EventThrouthAdapter extends JFrame {
private JButton jb;
public EventThrouthAdapter() {
jb = new JButton("确定");
jb.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
jb.setText("事件响应了");
}
});
this.add(jb);
this.setSize(300, 200);
this.setDefaultCloseOperation(3);
this.setVisible(true);
}
public static void main(String[] args) {
new EventThrouthAdapter();
}
}
3.匿名内部类。
package com.neusoft;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class EventThrouthAdapter extends JFrame {
private JButton jb;
public EventThrouthAdapter() {
jb = new JButton("确定");
jb.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
jb.setText("事件响应了");
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
});
this.add(jb);
this.setSize(300, 200);
this.setDefaultCloseOperation(3);
this.setVisible(true);
}
public static void main(String[] args) {
new EventThrouthAdapter();
}
}
2. 事件处理的主要步骤:
1. 首先产生监听器,监听是否有事件源的产生。
2. 在要实现具有事件处理功能的组件上注册监听器。
3. 注册监听器的组件产生事件源,并将事件对象返回给监听器。
4. 有监听器调用相应的方法处理事件。
3.注册事件监听器的三种方法:
1.通过接口实现
package com.neusoft;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class EventThrouthInterface extends JFrame implements ActionListener {
private JButton jb;
public EventThrouthInterface() {
jb = new JButton("确定");
jb.addActionListener(this);
this.add(jb);
this.setSize(300, 200);
this.setDefaultCloseOperation(3);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
this.jb.setText("事件响应了");
}
public static void main(String[] args) {
new EventThrouthInterface();
}
}
2.事件适配器。事件适配器和匿名内部类的方式基本相同,只不过适配器是JAVA中为了简化编程而提供的类,该类默认的实现了相应事件接口中的方法。比如WindowListener接口对应的事件适配器是WindowAdapter,而KeyListener对应的适配器接口是KeyAdapter,这样通过适配器我们就省去了通过接口实现必须实现所有抽象方法的烦恼,应为适配器中已经实现了所有的抽象方法,我们只需重写我们想要实现的方法就可以了。
package com.neusoft;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
public class EventThrouthAdapter extends JFrame {
private JButton jb;
public EventThrouthAdapter() {
jb = new JButton("确定");
jb.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
jb.setText("事件响应了");
}
});
this.add(jb);
this.setSize(300, 200);
this.setDefaultCloseOperation(3);
this.setVisible(true);
}
public static void main(String[] args) {
new EventThrouthAdapter();
}
}
3.匿名内部类。
package com.neusoft;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class EventThrouthAdapter extends JFrame {
private JButton jb;
public EventThrouthAdapter() {
jb = new JButton("确定");
jb.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
jb.setText("事件响应了");
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
});
this.add(jb);
this.setSize(300, 200);
this.setDefaultCloseOperation(3);
this.setVisible(true);
}
public static void main(String[] args) {
new EventThrouthAdapter();
}
}
相关文章推荐
- java事件处理总结
- Java知识总结----事件处理机制(九)
- Java事件处理总结
- JAVA中事件处理的总结
- Java中GUI的事件处理
- Java GUI编程中的事件处理机制详细讲解
- java事件处理机制(自定义事件)
- Java异常处理总结 异常 详解~~
- Java Swing中的键盘事件处理
- 内省(Introspector)是Java 语言对Bean类属性、事件的一种缺省处理方法
- JavaScript第六章知识点总结——JavaScript常用DHTML对象 Document相关对象 事件处理
- 为您的Java应用程序添加退出事件处理
- JAVA进阶8.7——事件处理(4)鼠标事件
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
- AIX6.1 TL04下安装Oracle补丁时报java程序正在被使用问题处理总结
- Java 异常处理的误区和经验总结
- Java GUI编程中如何进行事件处理机制
- java .net MFC QT事件处理机制
- 从零开始理解JAVA事件处理机制(1)
- Java事件处理机制(自定义事件)