import java.awt.event.*; import java.lang.reflect.*; import javax.swing.*; public class EventHandlerTest1 extends JFrame { JButton btnSearch = new JButton("abc");; public EventHandlerTest1() { btnSearch.addActionListener( new EventHandler(this,"btnSearch_Click")); add(btnSearch); pack(); setVisible(true); } public void btnSearch_Click(ActionEvent e) { System.out.println("aaa"); } public static void main(String[] args) { new EventHandlerTest1(); } } class EventHandler implements ActionListener { private Object form = null; private String methodName = null; public EventHandler(Object form,String methodName) { this.form = form; this.methodName = methodName; } public void 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; } } }