1. 像以前写的代码,运行出来只是界面,或结果。而当我们对其作出动作是它没有任何反 应,就像死人一样。。但是有了
监听器,我们就可以让它活过来!
1.1在java中,给事件源加监听器的格式是:事件源.add****Listener(监听器对象)。
比如你给按钮加监听器:
class="java" name="code"> //实例化一个按钮
JButton jb1 = new JButton("发射");
this.add(jb1);
//实例化动作监听器
BuAction ba = new BuAction(pt);
//给按钮加上监听器
jb1.addActionListener(ba);
其中的 BuAction 就是ActionListener抽象类的实现类。必须重写其中的方法,这样当你点击jb1这个按钮的时候就会执行其中的方法:
public class 文件名 implements java.awt.event.ActionListener{
public void actionPerformed(ActionEvent e){}
}
1.2在事件机制中会常用到不同类中进行传值。而一般是用
构造器进行传参!
比如在做画板的时候,需要在窗体类中获取画布之后,再传给监听器类,让其实现画画功能。
//设置窗体可见
this.setVisible(true);
//在窗体可见之后,获取窗体上的画布对象
Graphics g = this.getGraphics();
切记是在窗体可见之后才能获取画布!!!!
ActionListener dl = new DrawListener(g);
//给按钮对象源添加动作监听器方法,绑定事件处理类的对象dl
jb1.addActionListener(dl);
实例化对象带上参数g,再在监听器类中写上构造方法,这样就把参数g传过去了:
//定义全局变量,方便下面好调用
private Graphics g;
/**
* 传入参数g的构造器
* @param g画布
*/
public DrawListener(Graphics g) {
this.g = g;
}
事件机制中参数传递主要是使用构造方法进行传递, 一般传递的都是地址!!!!