簡體   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