1

私がやろうとしているのは、プログラムが何かをロードしているときに小さなスプラッシュ画面を表示させることです。これは私が持っているものです:

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

showSplashScreen()メソッドが行うのは、画面の中央に新しいJWindowを作成し、それを表示することだけです。

このコードはイベントディスパッチスレッドから呼び出されるため、showSplashScreen()メソッドが呼び出されると、スレッドが終了するまでJWindowが表示されません。それまでは、ウィンドウは必要ありません。私が待っている間にこのスプラッシュ画面を表示するための最良の方法は何でしょうか?

4

2 に答える 2

4

これが「最善の方法」であるかどうかはわかりませんが、以前に使用したメカニズムは、EDT以外のスレッドで初期化を行うことですが、を使用してスプラッシュ画面を表示しSwingUtilities.invokeAndWaitます。そうすれば、初期化が迅速であっても、少なくともスプラッシュ画面が表示されるようになります(それが必要な場合)。

したがって、初期化スレッドでは、次のようになります。

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

// Do stuff that takes time.

SwingUtilities.invokeLater( /* Hide splash screen, display main GUI */ );
于 2010-10-08T09:20:32.033 に答える
0

java.awt.SplashScreen1.6で導入されたクラスがありますが、それを使ってみましたか?

于 2010-10-08T09:17:27.067 に答える