/*
2008年11月1日15:01:44
功能:生成一个"退出"按钮,一点击它,就关闭整个窗口!
*/
import java.awt.*;
import java.awt.event.*;public class TestFrame implements ActionListener
{
Frame f = new Frame("嘿嘿"); public static void main(String[] args)
{
TestFrame tf = new TestFrame(); Button bt = new Button("退出!");
tf.f.add(bt);
tf.f.pack();
tf.f.setVisible(true);
bt.addActionListener(tf); //为什么改为bt.addActionListener(new TestFrame()); 点击"退出"按钮也能关闭整个屏幕,
//我认为tf和 再次new TestFrame()的对象很明显不是一个对象,我们需要的是操作tf对象中的f成员(因为整个窗口是tf对象
//设计出来的嘛!),即27和28行的f应该是tf对象中的成员,而不应该是重新new出来的TestFrame对象中的f成员
//如果我推理正确的话,那把bt.addActionListener(tf);改为bt.addActionListener(new TestFrame()); 应该点击"退出"
//按钮时没法关闭整个屏幕,才对啊
//但是运行发现窗口的确关闭了,为什么 请诸位高手指教! 先谢谢啦!
} public void actionPerformed(ActionEvent e)
{
f.setVisible(false); //27行
f.dispose(); //28行
System.exit(0);
}
}
import java.awt.*;
import java.awt.event.*;public class TestFrame implements ActionListener
{
Frame f = new Frame("嘿嘿"); public static void main(String[] args)
{
TestFrame tf = new TestFrame(); Button bt = new Button("退出!");
tf.f.add(bt);
tf.f.pack();
tf.f.setVisible(true);
bt.addActionListener(new TestFrame());
} public void actionPerformed(ActionEvent e)
{
f.setVisible(false); //27行
f.dispose(); //28行
//System.exit(0); 这个是终止当前正在运行的 Java 虚拟机 注释掉 你再试试
}
}
import java.awt.*;
import java.awt.event.*;public class TestFrame1 implements ActionListener
{
Frame f = new Frame("嘿嘿"); public static void main(String[] args)
{
TestFrame1 tf = new TestFrame1(); Button bt = new Button("退出!");
tf.f.add(bt);
tf.f.pack();
tf.f.setVisible(true);
bt.addActionListener(tf); //的确,把tf改为new TestFrame1() 运行后点退出按钮,就无法退出整个窗口了
} public void actionPerformed(ActionEvent e)
{
f.setVisible(false); //27行
f.dispose(); //28行
//System.exit(0); 这个是终止当前正在运行的 Java 虚拟机 注释掉 你再试试
}
}
谢谢您 太谢谢你啦 非常之感谢
O(∩_∩)O哈哈~