java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.Method;
/**
*该类是用来处理所有的Swing按钮点击事件,并根据将处理权<br>
*转交给使用者来处理
*
*@authorChen.yu
*
*/
publicclass EventHandlerimplements ActionListener {
//组件所在的窗体对象
private Object form = null;
//受到委托的方法名
private String methodName = null;
/**
*构造函数
*
*@paramform 组件所在的窗体对象
*@parammethodName 受到委托的方法名
*/
public EventHandler(Object form,String methodName) {
this.form = form;
this.methodName = methodName;
}
/**
*事件处理委托方法
*/
publicvoid actionPerformed(ActionEvent e) {
//得到窗体对象的类型
Class formType = this.form.getClass();
try {
//得到指定委托方法的类型
Method method =
formType.getMethod(this.methodName, new Class {e.getClass()});
//调用指定的方法
method.invoke(this.form, new Object {e});
}catch(Exception ex) {
return;
}
}
}
现在我们来编写一个测试
程序,代码如下:
btnSearch.addActionListener(
new EventHandler(this,"btnSearch_Click"));
public void btnSearch