import java.awt.*;
import java.awt.event.*;
public class TestFrame implements ActionListener
{
Frame f=new Frame("IT资讯交流网");
public static void main(String [] args)
{
TestFrame tf=new TestFrame();
tf.init();
}
public void init()
{
Button btn=new Button("退出");
btn.addActionListener(new TestFrame());
f.add(btn);
f.setSize(300,300);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
f.setVisible(false);
f.dispose();
System.exit(0);
}
}
敢问在运行以上代码时,是从main开始执行,当运行到tf.init();时,我发现init()方法里又一次new 了一个TestFrame(main方法在这里),问题就在这里了。
相当于在main方法里又调用了一个main方法么?那么那个new 出来的第二个TestFrame会显示出来么?我在mian里添加 int i=1;
System.out.println("counter = "+(i++));
后发现只输出一次i。为什么不是一直死循环哪?