黑马程序员技术交流社区

标题: 关于张老师的awt [打印本页]

作者: 张超    时间: 2012-12-4 09:32
标题: 关于张老师的awt
//此题位于张老师就业培训教材的296页上。
import java.awt.*;
import java.awt.event.*;
public class TestFrame implements ActionListener
{
Frame f=new Frame("IT人咨询交流网");//第一个TestFrame对象
public static void main(String[] args) {
  // TODO Auto-generated method stub
  TestFrame tf = new TestFrame();
  tf.init();
  System.out.println(tf);
}
public void init(){
  Button btn = new Button("退出");
  btn.addActionListener(new TestFrame());//张老师的原话意思要想让这个退出按钮的功能能够有效,这个地方不能够new TestFrame()只能够用this,因为第一种情况实际是产生了
//两个TestFrame 对象,桌面上产生的是第一个TestFrame对象中的f对象,而按下关闭按钮所关闭的是第二个TestFrame对象中的f对象,     但是我遇到的情况是用new TestFrame()也能
//够关闭这个窗口,
  f.add(btn);
  f.setSize(300,300);
  f.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  System.out.println(this);
  f.setVisible(false);
  f.dispose();
  System.exit(0);
  [url=]/*TestFrame@e89b94[/url]
  TestFrame@52fe85
以上是打印的对象地址,第二个TestFrame对象的监听器对象居然能够控制第一个TestFrame 对象的控制按钮。
*/
}
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2