我正处于学习
Java的初级阶段.
在我读过的所有文档中,它都提到Java使用安全引用来访问对象而不是内存指针.
而且当方法返回时,其本地范围的变量符合垃圾收集的条件.
在我读过的所有文档中,它都提到Java使用安全引用来访问对象而不是内存指针.
而且当方法返回时,其本地范围的变量符合垃圾收集的条件.
那么为什么在下面的代码中,在createFrame方法返回后,JFrame对象不会随窗口一起被销毁?
import javax.swing.*; public class HelloJava { public static void main( String[] args ) { createFrame(); } private static void createFrame() { JFrame frame = new JFrame( "Hello,Java!" ); JLabel label = new JLabel( "Hello,Java!",JLabel.CENTER ); frame.getContentPane().add( label ); frame.setSize( 300,300 ); frame.setVisible( true ); } }
不仅窗口是可见的,我可以在该窗口上执行所有操作,如拖动,最大化,最小化等.
解决方法
因为EDT现在正在运行.
有关详细信息,请参阅Concurrency in Swing&尤其:
In standard programs,there’s only one such thread: the thread that invokes the
main
method of the program class.
Swing event handling code runs on a special thread kNown as the event dispatch thread. Most code that invokes Swing methods also runs on this thread.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。