Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1232 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Swing] Attendre la fin d'un repaint() pour continuer l'execution...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Swing] Attendre la fin d'un repaint() pour continuer l'execution...

n°596208
Dephi
Posté le 23-12-2003 à 17:34:56  profilanswer
 

:hello:  
 
 
Encore une fois, je vais prouver à la face du monde mon incompétence totale en SWING...  :whistle:  
 
 
A la demande de l'utilisateur, mon appli Java lance un Process pour executez un programme en C...
Ce programme en C n'a aucun affichage graphique.
 
Pour eviter la panique de l'utilisateur qui pourrait croire que l'appli est plantée (le temps d'execution du programme C peut se chiffrer en 10aine de secondes..), je voudrais simplement afficher une fenêtre contenant un message du style "Calcul en cours..."
 
J'ai écrit ma fenêtre "Splash" (extends JWindow), je l'affiche avant le lancement du calcul (avec un show()), je lance le calcul et une fois mon calcul terminé, je l'efface (dispose())
 
Seulement, ma fenêtre ne s'affiche pas réelement, j'ai juste la trace en gris de cette fenêtre..
 
Comment dire au programme d'attendre le repaint() de l'IHM pour continuer a s'executer ???  :??:  
 
J'ai essayé de faire un repaint() sur la fenêtre principale de l'IHM, un repaint() sur la fenêtre "Splash", mais rien n'y fait..
Il y a t-il une solution simple ou alors dois-je utiliser un SwingWorker (je viens de découvrir cette classe) ou autre ruse de sioux ?
 
 
Mercii pour la réponse qui est certainement très simple..
 :jap:  
 
Et joyeuses fetes !!!


---------------

mood
Publicité
Posté le 23-12-2003 à 17:34:56  profilanswer
 

n°596353
nraynaud
lol
Posté le 24-12-2003 à 02:21:19  profilanswer
 

SwingWorker.
 
Il ne faut rien faire de long dans la tache de répartition des événements swing.


---------------
trainoo.com, c'est fini
n°611369
Dephi
Posté le 14-01-2004 à 09:19:53  profilanswer
 

:hello:  
 
 
 
Je me suis replongé dans ce problème mais je suis incapable de le faire...  :cry:  
 
J'ai écrit la méthode suivante que j'appelle juste avant l'execution d'une autre fonction qui lance un process (execution d'un programme C)
 

Code :
  1. public void a() {
  2.  Runnable showSplashWindow_l = new Runnable() {
  3.   public void run() {
  4.                              // (SplashWindow est une JWindow)
  5.               new SplashWindow().show();
  6.   }
  7.  };
  8.  try {
  9.   SwingUtilities.invokeLater(showSplashWindow_l);
  10.  } catch (Exception e) {
  11.   e.printStackTrace();
  12.  }
  13. }


 
Mais ca ne marche pas...  :cry:  
Ma fenetre s'affiche mais apres l'execution du programme C  :cry:  
J'ai bien essayé de faire un  

Code :
  1. SwingUtilities.invokeAndWait(showSplashWindow_l);


 
Mais je me prends l'exception

Citation :

java.lang.Error: Cannot call invokeAndWait from the event dispatcher thread


 
 
Quelqu'un peut-il m'aider please ??
Tks !!
 :jap:


---------------

n°611430
nraynaud
lol
Posté le 14-01-2004 à 10:55:47  profilanswer
 

heu tu rames ou quoi ?
J'ai dit SwingWorker, pas invokeLater().
 
SwingWorker c'est un truc qui bosse en arrière plan, c'est ce qu'il te faut. Tu créés un SwingWorker et tu lui dis de faire le traitement en C.
 
invokeLater c'est quand tu n'es pas dans le thread swing et que tu veux exécuter un bout de code touchant à l'interface.
 
 
le code du run() de ton swingWorker doit être :
- invokeAndWait(affiche splashScreen)
- faire le traitement en C
- invokeAndWait(retirer le splashScreen)


---------------
trainoo.com, c'est fini

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Swing] Attendre la fin d'un repaint() pour continuer l'execution...

 

Sujets relatifs
[Java] Evaluer le temps d'exécution d'un fonction.[Java]Recherche un composant swing
Execution d'un process via Java : Comment "simuler" le clavier ???[ASP]nouvelle fenetre + execution automatique d'une fonction
[JAVA] Peut-on fixer le séparateur décimal à l'exécution ?[java] newbye : rentrer des valeurs dans mon programme à l'exécution
comment mettre en pause un programme pendant son exécution ?Execution d'un prog,
[Java-Swing] Auto positionnement d'un JScrollPane[PHP] augmenter le max_execution_time dans le php.ini
Plus de sujets relatifs à : [Swing] Attendre la fin d'un repaint() pour continuer l'execution...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR