繁体   English   中英

在事件调度线程中显示JWindow

[英]Displaying JWindow in the event dispatching thread

我想要做的是在我的程序加载某些东西时出现一个小的启动画面。 这就是我所拥有的:

SplashScreen.showSplashScreen();
// Do stuff that takes time.
SplashScreen.hideSplashScreen();

所有showSplashScreen()方法都会在屏幕中间创建一个新的JWindow并使其可见。

现在这个代码是从事件调度线程调用的,所以当调用showSplashScreen()方法时,我不会看到JWindow,直到线程完成,到那时,我不再需要窗口了。 在我等待的时候,展示这个闪屏的最佳方式是什么?

不确定这是否是“最佳方式”,但我之前使用过的机制是在EDT以外的线程上进行初始化,但是使用SwingUtilities.invokeAndWait显示你的启动画面。 这样,即使你的初始化很快(至少你想要发生的事情),你至少也会看到启动画面。

所以在你的init线程上,你去:

SwingUtilities.invokeAndWait( /* Runnable to show splash screen */ );

// Do stuff that takes time.

SwingUtilities.invokeLater( /* Hide splash screen, display main GUI */ );

在1.6中引入了一个java.awt.SplashScreen类,尝试使用它?

暂无
暂无

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

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