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 @Override 37 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 block 46 e1.printStackTrace(); 47 } catch (IllegalArgumentException e1) { 48 // TODO Auto-generated catch block 49 e1.printStackTrace(); 50 } catch (NoSuchMethodException e1) { 51 // TODO Auto-generated catch block 52 e1.printStackTrace(); 53 } catch (IllegalAccessException e1) { 54 // TODO Auto-generated catch block 55 e1.printStackTrace(); 56 } catch (InvocationTargetException e1) { 57 // TODO Auto-generated catch block 58 e1.printStackTrace(); 59 } catch (InstantiationException e1) { 60 // TODO Auto-generated catch block 61 e1.printStackTrace(); 62 } 63 64 } 65 }); 66 } 67 68 }