繁体   English   中英

JFrame处理后的值是什么?

[英]What is the value of a JFrame after it has been disposed?

该值不一定为null(我认为吗?),因为它仍然是有效的引用。

JFrame是一个对象,因此永远不能为null,而JFrame变量可以引用有效的JFrame对象,也可以没有引用,因此为“ null”。 如果在JFrame对象上调用dispose() ,则该对象仍然存在,因此变量不为null。 但是,JFrame已释放了一些系统资源。 如果重新渲染JFrame对象,将再次获得这些资源。

通常,针对此类问题的最佳测试是:1)创建并运行测试代码,以及2)检查API

例如,

JFrame frame = new JFrame("Foo");
frame.pack();
frame.setVisible(true);

// in some listener
frame.dispose(); // it's no longer visible
System.out.println("is frame null? " + (frame == null));

根据Window API,dispose方法继承自:

释放此Window及其子组件及其所有子级使用的所有本机屏幕资源。 也就是说,这些组件的资源将被销毁,它们消耗的任何内存都将返回给OS,并将它们标记为不可显示。 通过重建本机资源以及随后的打包或显示调用,可以再次显示Window及其子组件。 重新创建的Window及其子组件的状态与放置Window时这些对象的状态相同(不考虑这些动作之间的其他修改)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM