View Code
1 package com.copy.util; 2 3 import java.awt.Color; 4 import java.awt.event.ActionEvent; 5 import java.awt.event.ActionListener; 6 import java.lang.reflect.InvocationTargetException; 7 import java.lang.reflect.Method; 8 9 import javax.swing.JButton;10 11 public class ButtonHandler extends JButton{12 private String name ;13 private String method;14 private Object obj;//组建所在窗体对象15 16 public ButtonHandler( Object obj, String name, String method) {17 this.setText(name);18 this.name = name;19 this.method = method;20 this.obj = obj;21 // this.setBackground(Color.green);22 getMethodByName(name);23 }24 25 public void setFontgroundColor(Color c){26 this.setForeground(c);27 }28 public void setBackgroundColor(Color c){29 this.setBackground(c);30 }31 32 public void getMethodByName(final String name){33 34 this.addActionListener(new ActionListener() {35 36 @Override37 public void actionPerformed(ActionEvent e) {38 39 try {40 Class objClass = obj.getClass();41 Method md;42 md = objClass.getMethod(method, null);43 md.invoke(objClass.newInstance(), null);44 } catch (SecurityException e1) {45 // TODO Auto-generated catch block46 e1.printStackTrace();47 } catch (IllegalArgumentException e1) {48 // TODO Auto-generated catch block49 e1.printStackTrace();50 } catch (NoSuchMethodException e1) {51 // TODO Auto-generated catch block52 e1.printStackTrace();53 } catch (IllegalAccessException e1) {54 // TODO Auto-generated catch block55 e1.printStackTrace();56 } catch (InvocationTargetException e1) {57 // TODO Auto-generated catch block58 e1.printStackTrace();59 } catch (InstantiationException e1) {60 // TODO Auto-generated catch block61 e1.printStackTrace();62 }63 64 }65 });66 }67 68 }