//: ButtonGroups.javaimport javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.lang.reflect.*;public class ButtonGroups extends JApplet {
  private static String[] ids = {
    "June","Ward","Beaver",
    "Wally","Eddie","Lumpy",
  };
  static JPanel makeBPanel(Class klass, String[] ids) {
    ButtonGroup bg = new ButtonGroup();
    JPanel jp = new JPanel();
    String title = klass.getName();
    title = title.substring(title.lastIndexOf('.')+1);
    jp.setBorder(new TitledBorder(title));
    for(int i=0; i<ids.length; i++) {
      AbstractButton ab = new JButton("failed");
      try {
        Constructor ctor = 
          klass.getConstructor(new Class[]{String.class});
        //System.out.println("  ctor: "+ctor);
        ab = (AbstractButton)
          ctor.newInstance(new Object[] {ids[i]});
        //System.out.println("    at: "+ctor+"  ids[i]: "+ids[i]);
      } catch(Exception ex) {
        System.err.println("Can't create "+klass);
      }
      bg.add(ab);
      jp.add(ab);
    }
    return jp;
  }
  public void init() {
    Container cp = getContentPane();
    cp.setLayout(new FlowLayout());
    cp.add(makeBPanel(JButton.class,ids));
    cp.add(makeBPanel(JToggleButton.class,ids));
    cp.add(makeBPanel(JCheckBox.class,ids));
    cp.add(makeBPanel(JRadioButton.class,ids));
  }
  public static void main(String[] args) {
    Console.run(new ButtonGroups(),500,400);
  }

---------------------------------------------------------------------------
这几条代码是怎么用的,能帮忙解释下吗 Constructor ctor = klass.getConstructor(new Class[]{String.class}); ab = (AbstractButton)ctor.newInstance(new Object[] {ids[i]});