- 论坛徽章:
- 0
|
程序如下:
import javax.swing.*;
public class SimpleFrameTest
{
public static void main(String[] args)
{
SimpleFrame frame = new SimpleFrame(); //创建框架
SimpleFrame frame2=new SimpleFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //frame框架等待关闭
frame.setVisible(true); //显示框架
frame2.setVisible(true);
}
}
class SimpleFrame extends JFrame
{
public SimpleFrame()
{
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
}
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;
}
运行结果出现两个框架,并且是重叠的
测试1)我关闭显示在最前的框架,但程序还没有退出,然后我再关闭第二层的框架,程序完全退出了。
测试 2)我先关闭第二层框架,程序就完全退出了。
由此可以推断显示在最前面的框架是对象frame构造的,第二层框架是由对象frame2构造的。因为frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame调用了setDefaultCloseOperation()函数,该函数表示等待用户手动关闭,响应关闭动作,但关闭了此框架其它框架并不会因此而退出,程序也不会因此而退出。
问题1:以上我的解析正确吗?
问题2:当我先关闭第二层框架,程序就完全退出了,是否表明两个框架关系存在一种依附关系,即最前面显示的框架依赖于第二层的框架呢?不知道这是否可以资源或线程有关呢?
谢谢! |
|