سؤال

ما أحاول القيام به هو ظهور شاشة رش صغيرة بينما يقوم برنامجي بتحميل شيء ما. هذا ما لدي:

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

جميع طريقة SimplashScreen () تقوم بإنشاء Jwindow جديد في منتصف الشاشة وجعلها مرئية.

الآن يتم استدعاء هذا الرمز من مؤشر ترابط إرسال الحدث ، لذلك عندما يتم استدعاء طريقة SimplashScreen () ، لا يمكنني رؤية 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 */ );

نصائح أخرى

هناك java.awt.SplashScreen الفصل الذي تم تقديمه في 1.6 ، حاول استخدام ذلك؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top