import java.awt.*;
import java.awt.event.*;
public class TestActionEvent2 {
public static void main(String[] args) {
Frame f = new Frame("Test");//这里new出来个Frame对象但是没有调用构造方法;那"Test" 怎么 Button b1 = new Button("start");//没有传到构造方法的里去,就是显示.这里怎么解释
Button b2 = new Button("stop");
Monitor bh = new Monitor();
b1.addActionListener(bh);
b2.addActionListener(bh);
b2.setActionCommand("game over");
f.add(b1,BorderLayout.NORTH);
f.add(b2,BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
}class Monitor implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("a button jbeen pressed"+
"the relative info is:\n" + e.getActionCommand());
}
}
Button b1 = new Button("start");
Button b2 = new Button("stop");
Monitor bh = new Monitor();
b1.addActionListener(bh);
b2.addActionListener(bh);
b2.setActionCommand("game over");
f.add(b1,BorderLayout.NORTH);
f.add(b2,BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
}class Monitor implements ActionListener {
public void actionPerformed(ActionEvent e) {
System.out.println("a button jbeen pressed"+
"the relative info is:\n" + e.getActionCommand());
}
}

解决方案 »

  1.   

    建议下载并查看一下JDK源码。
      

  2.   

    new 的同事是实例化一个对象并调用默认的构造方法
      

  3.   

    Frame(String title); //自己查一下jdkdoc,这个就是构造方法,本来就有多个构造方法,想调哪个由用户决定
      

  4.   

    java中所有的对象都是new出来的。即使是String也是如此。String str="abc";实际上是编译器代替了new的操作,编写自己的类的时候如果没有写构造方法,编译器会默认提供1个构造方法。自己也可以多写几个构造方法(普通的方法也是这样),只是参数不同而已,重载就是说的这个意思。