Démarrer l'autre traitement sur un Thread (par exemple dans une SwingWorker) et au début, faites appel modalDialog.setVisible(true). À la fin de la tâche d'appel setVisible(false).
dialog.setVisible(true);//show the dialog on the screen//Do something here
dialog.setVisible(false);//set visibility to false when the code has run
À mon humble avis, c'est la meilleure réponse. Pourquoi ajouter la complication supplémentaire de threads s'ils ne sont pas nécessaires. C'est simple, mais peut ne pas fonctionner dans certains cas... javax.swing prend un sacré bout de temps afin de créer ou de peindre une image. Afin que votre message pourrait ne pas être visible que la JVM ne pas attendre jusqu'à ce que le swing a terminé son travail. Le thread peut passer à //Do something here.
Démarrer l'autre traitement sur un
Thread
(par exemple dans uneSwingWorker
) et au début, faites appelmodalDialog.setVisible(true)
. À la fin de la tâche d'appelsetVisible(false)
.OriginalL'auteur Andrew Thompson
Je suggère la création d'une simple JDialog et puis le disposer une fois votre code a exécuter. Vous pouvez créer votre JDialog avec le code suivant:
Et de l'appliquer comme ceci:
C'est simple, mais peut ne pas fonctionner dans certains cas...
javax.swing
prend un sacré bout de temps afin de créer ou de peindre une image. Afin que votre message pourrait ne pas être visible que la JVM ne pas attendre jusqu'à ce que le swing a terminé son travail. Le thread peut passer à//Do something here
.OriginalL'auteur Katana
Peut-être le jdialog est en mode modal, essayez de changer la propriété modal de la jdialog :
yordialog.setModal(false)
.OriginalL'auteur aleroot
Il s'est arrêté parce que vous êtes à l'aide de la "main-Fil" qui est utilisé pour exécuter le code et afficher le JDialog.
Pour résoudre ce problème, vous devriez regarder dans quelque chose comme SwingWorker
OriginalL'auteur medopal