Java学习笔记-------事件处理机制

事件处理机制的实例:
/*
功能:加深对事件处理机制的理解
1.通过上下左右键,来控制一个小球的位置
2.


*/
首先要确定谁是事件源??
MyPanel来监听




package com.test4;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Demo9_4 extends JFrame
{
public static void main(String [] args)
{

}

public Demo9_4()
{
mp=new MyPanel();

//mp加入到JFrame
//Container ct=this.getContentPane();
this.add(mp);
//添加监听

this.addkeyListener(mp);  // 给Demo9_4类对象,添加了一个监听器。
因此,只要,mp发生一个事件,它都能处理。
而他为什么能处理呢?
().mp产生的事件类型,只有mp才拥有处理方法。即:有相应的成员函数
().把mp传递给谁,那么,谁就也拥有这种处理方法。
// 这句话,该怎么理解?
给这个类,添加了一个mp的监听器,专门监听来自mp的事件
是这个意思吗???


一个类中有很多方法,或者说,一个类有很多器,
你调用某个方法,就是,该对象拥有了该器
例如:
this.addkeyListener(mp);
调用了一个keyListener()方法,即:该对象,有了对象监听器。
而传递过来的实参,就是,该监听器来处理该实参。
因为在Java中实参都是对象。
而对象是类的实例,因此,对象不仅仅是变量和数据结构,它还有一系列的方法
因此,当一个类的对象,接收了来自与另一个类对象时,
即:所谓的传递。
那么,传递过来的对象,就可以被当成他自己的一部分来使用。
即:传递过来的对象,被当成它的成员变量。
所以,它也拥有了该对象的一切。包括:方法。








就是说,:让mp听到什么呢??
你给

怎么让mp具有监听的能力

this.add(mp);
this.addkeyListener(mp);//这句实现监听

this.setSize(400,300);
this.setVisible(true);

}
}


// 定义自己的面板


class MyPanel  extends JPanel implemnets java.awt.event.KeyListener
{
int x=10;
int y=10;
public void paint(Graphic g)
{
super.paint(g);
g.filloval(x,x,y,y);
}

// 键被按下
public void keyPressed(KeyEvent e)
{
 //System.out.println("键被按下"+(char)e.getKeyCode());
 if(e.getKeyCode()==ketEvent.VK_DOWN)
 {
System.out.println("12");
//
y++;

 }
else if(e.getKeyCode()==ketEvent.VK_UP)
{
y--;

}
//调用repaint函数,来重新绘制界面



this.repain();
 
}
//键被松开
public void keyReleased(KeyEvent e)
{

}
键的一个值别输出
public void keyTyped(KeyEvent e)
{

}



}




这其中几个比较重要的概念;


1.事件源
2.事件
3.事件监听器




就是说,当事件源用事件监听器监听到,什么的时候,
它会采取一些措施


事件源是一个触发事件的对象
比如:按钮就是一个事件源,按钮按下就是,按钮触发的事件对象


记住;
1.一个事件源可以产生多个不同类型的事件
2.如果某个对象,希望得到事件源产生的事件,就需要在这个事件源上注册。
// 这句话是什么意思???
3.








所以:


每个对象都能产生事件


我认为Java的事件处理机制只有俩步:
1.给Demo9_4类对象,添加了一个监听器。
2.为该监听器,书写事件处理方法。


其实,这也和swing机制,一样,
一切都是容器
一切又都是组件
容器可以添加组件






抽象性理论:
Java使用了基于代理的事件处理机制
主要由事件、事件源、事件监听器三部分相互关联而成


当事件发生时,由事件源委托给事件监听器进行处理,继而执行事件处理代码,,产生执行效果。


如果希望事件源上发生的事件被程序处理,就要把事件源注册给能够处理该事件源上那种类型事件的监听者。




事件监听器是接受事件并实现事件处理的对象。
事件监听器必须实现与事件源所产生的事件相对应的监听接口,执行接口中提供的事件处理方法,方可实现监听和处理功能。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值