韩顺平 java 第36讲 事件监听
2015-10-12 15:54
381 查看
事件源
事件源是一个产生或者触发事件的对象,比如前面的按钮或者按键,当这个事件源对象的某些状态以某种方式发生变化时,就会产生某种类型的事件,一个事件源可能会产生多个不同类型的事件,如果某个组件(对象)希望得到事件源的事件,就需要在这个事件源上注册。事件
事件就是承载事件源状态改变时的信息对象。或者说事件是事件源向事件监听器传输事件源状态信息的载体,在用户与GUI组件进行交互时就会生成事件,比如当鼠标在面板中移动时,就会生成一个鼠标移动事件的对象,而这个对象保存这当前鼠标在面板中的位置信息。事件监听器接口
事件监听者实际上就是一个类,该类实现了某个时间监听器接口,比如之前的MyPanel就是一个类,她实现了ActionListener接口,她就可以作为一个事件监听者,对接受到的事件进行处理,时间监听器接口有多种,不同的事件监听器可以监听不同的事件,一个类可以实现一个事件监听接口,也可以实现多个监听接口。package chen.com; import java.awt.*; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.*; //这个类NotePad就是监听者 public class Notepad extends JFrame{ MyPanel mp = null; public static void main(String[] args) { Notepad myclass = new Notepad(); } public Notepad(){ mp = new MyPanel(); this.add(mp); //注册监听 this.addMouseListener(mp); this.addKeyListener(mp); this.setSize(300,200); this.setLocation(200,100); this.setTitle("change the background"); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } class MyPanel extends JPanel implements MouseListener,KeyListener{ int x = 10,y = 100; @Override public void paint(Graphics g) { super.paint(g); } @Override public void mouseClicked(MouseEvent e) { System.out.println("x = " + e.getX() + " y = " + e.getY()); } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { System.out.println("鼠标来了"); } @Override public void mouseExited(MouseEvent e) { System.out.println("鼠标走了"); } @Override public void keyTyped(KeyEvent e) { } @Override public void keyPressed(KeyEvent e) { System.out.println("按了:" + e.getKeyChar()); } @Override public void keyReleased(KeyEvent e) { } }
总结
java采用委托机制处理事件java中的事件是分类的,比:对窗体事件、鼠标事件、按键事件
java中一个雷要监听某个事件,则必须实现相应的事件监听接口
事件监听接口有很多种,程序员应担针对不同的情况实现不同的监听接口
在事件源中需要注册事件监听类,否则事件监听类接收不到事件源发生的事件
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统