Java事件处理
2015-07-12 21:23
519 查看
任何支持GUI的操作环境都要不断的监视按键或点击鼠标这样的事件,操作环境将这些事件报告给正在运行的应用程序。程序员对相关的特定事件编写代码,并将这些代码放置在过程中,通常人们将它们称之为事件。
在AWT所知的事件范围内,完全可以控制时间从事件源到事件监听器的传递过程,并将任何对象指派给事件监听器。Java将事件的相关信息封装在一个事件对象(Event Object)中。在Java中,所有的事件对象都最终派生于java.util.EventObject类。
AWT事件处理机制的概要:
1:监听器对象是一个实现了特定监听器端口的类的实例。
2:事件源是一个能够注册监听对象并发送事件对象的对象。
3:当事件发生时,事件源将事件对象传递给所有注册的监听器。
4:监听器对象对利用事件对象中的信息决定如何对事件做出响应。
//下面是一个监听器实例
ActionListener listener= …;
JButton button = new JButton(“OK”);
button.addActionListener(listener);
现在只要按钮产生了一个动作事件,listener对象就会被告知。
在AWT所知的事件范围内,完全可以控制时间从事件源到事件监听器的传递过程,并将任何对象指派给事件监听器。Java将事件的相关信息封装在一个事件对象(Event Object)中。在Java中,所有的事件对象都最终派生于java.util.EventObject类。
AWT事件处理机制的概要:
1:监听器对象是一个实现了特定监听器端口的类的实例。
2:事件源是一个能够注册监听对象并发送事件对象的对象。
3:当事件发生时,事件源将事件对象传递给所有注册的监听器。
4:监听器对象对利用事件对象中的信息决定如何对事件做出响应。
//下面是一个监听器实例
ActionListener listener= …;
JButton button = new JButton(“OK”);
button.addActionListener(listener);
现在只要按钮产生了一个动作事件,listener对象就会被告知。
[code]import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class ButtonFrame extends JFrame{ //创建面板 private JPanel buttonPanel; private static final int DEFAULT_WIDTH = 300; private static final int DEFAULT_HEIGTH = 200; public ButtonFrame(){ setSize(DEFAULT_WIDTH,DEFAULT_HEIGTH); //创建三个按钮对象 也就是事件源 JButton yellowButton = new JButton("Yellow"); JButton blueButton = new JButton("Blue"); JButton redButton = new JButton("Red"); buttonPanel = new JPanel(); buttonPanel.add(yellowButton); buttonPanel.add(blueButton); buttonPanel.add(redButton); add(buttonPanel); //创建事件监听器 ColorAction yellowAction = new ColorAction(Color.YELLOW); ColorAction blueAction = new ColorAction(Color.BLUE); ColorAction redAction = new ColorAction(Color.RED); yellowButton.addActionListener(yellowAction); blueButton.addActionListener(blueAction); redButton.addActionListener(redAction); } private class ColorAction implements ActionListener{ private Color backgroundColor; private ColorAction(Color c){ backgroundColor = c; } //执行的操作 public void actionPerformed(ActionEvent event){ buttonPanel.setBackground(backgroundColor); } } public static void main(String[] args) { // TODO Auto-generated method stub EventQueue.invokeLater(new Runnable(){ public void run(){ JFrame frame = new ButtonFrame(); frame.setTitle("HW"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } }
相关文章推荐
- 【java设计模式】迭代子模式
- Spring MVC url提交参数和获取参数
- springmvc入门基础之注解和参数传递
- java多线程技术
- java常用容器(集合)的总结
- IDEA设置Eclipse编译(用于忽略有编译错误的Class)
- Java 8 中HashMap源码分析
- 《Spring技术内幕》笔记-第五章 数据库操作组件的实现
- SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
- JNA调用C动态库dll、so
- java-缓冲流对输入输出设备的包装
- 【JAVA】【NIO】3、Java NIO Channel
- 单例设计模式
- Spring的69个知识点
- 【java设计模式】观察者模式
- Java 代理模式
- Java语言基础1--练习题
- java用自定义类型作为HashMap的键
- java基础
- Java语言基础1--专题课 拆数