您的位置:首页 > 编程语言 > Java开发

韩顺平 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 鼠标 事件监听