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

  FORUM HardWare.fr
  Programmation
  Java

  Indicateur de progression dans une JFrame

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Indicateur de progression dans une JFrame

n°921897
zedar
Posté le 13-12-2004 à 15:05:08  profilanswer
 

Bonjour,
 
Voilà, j'ai fait une petite interface en Swing qui me lance un traitement très long (une dizaine de requêtes SQL), le tout pouvant durer plus de 2heures.
 
J'aimerais que mon interface se rafraîchisse suffisamment souvent pour mettre à jour un JTextField qui contiendrait le numéro de requête en cours : elles sont lancées dans une boucle for(), j'aimerais donc qu'à chaque passage dans cette boucle, on mette à jour le champ texte.
 
J'ai essayé pas mal de méthodes, repaint() du Container, du JTextField, faire un sleep avant et après le repaint... bref plein de trucs cochons (je tâtonne en interfaces) mais rien ne marche, et la valeur de mon champ ne change qu'une fois le traitement terminé.
 
Auriez-vous une idée pour me débloquer?
Merci d'avance :jap:

mood
Publicité
Posté le 13-12-2004 à 15:05:08  profilanswer
 

n°921936
Profil sup​primé
Posté le 13-12-2004 à 15:35:44  answer
 

Multithreading ?

n°921946
zedar
Posté le 13-12-2004 à 15:39:32  profilanswer
 

Merci,
 
j'ai essayé de créer un thread parallèle qui effectue le repaint (là aussi en jouant un peu avec des wait et sleep) et ça n'a rien changé...
Peut être que je me trompe de méthode et que ce n'est pas le repaint qu'il faut appeler ?

n°921954
Profil sup​primé
Posté le 13-12-2004 à 15:48:43  answer
 

Zedar a écrit :

Merci,
 
j'ai essayé de créer un thread parallèle qui effectue le repaint (là aussi en jouant un peu avec des wait et sleep) et ça n'a rien changé...
Peut être que je me trompe de méthode et que ce n'est pas le repaint qu'il faut appeler ?


 
C'est bien repaint qu'il faut appeler pour mettre à jour un composant Swing. Par contre il faut t'assurer que les opérations d'affichage se font bien dans le "event-dispatching thread" et le reste ailleur.
 
http://java.sun.com/docs/books/tut [...] index.html
 
et
 
http://java.sun.com/docs/books/tut [...] reads.html
 
Sinon poste ton code (si c'est pas trop gros, ou essaie d'isoler le problème), ça peut toujours aider.


Message édité par Profil supprimé le 13-12-2004 à 15:49:18
n°921958
zedar
Posté le 13-12-2004 à 15:54:34  profilanswer
 

Disons que j'ai essayé vraiment pas mal de manières de caser mon repaint :)
 
Là j'ai un programme très simple, une classe qui construit mon interface (extends JFrame), et une autre classe qui contient le corps de mon programme (requêtes SQL et écriture dans un fichier Excel).
La méthode principale de cette dernière classe récupère ma JFrame en paramètre, j'ai donc essayé de faire un fenetre.repaint(), puis un fenetre.text.repaint() (où text est le JTextField qui m'intéresse), de rajouter un sleep avant et après... mais pas moyen, ça ne fait rien du tout.
 
Je vais regarder plus en détails ton deuxième lien sur le event-dispatching thread, je ne connais pas ça. Merci ;)

n°921965
Profil sup​primé
Posté le 13-12-2004 à 16:06:07  answer
 

Poste ton code parce que là à part le fait que ça marche pas, j'ai pas beaucoup d'informations. :D

n°922000
zedar
Posté le 13-12-2004 à 16:33:27  profilanswer
 

Blabla (code enlevé, désolé)


Message édité par zedar le 14-12-2004 à 11:33:18
n°922098
zedar
Posté le 13-12-2004 à 17:41:04  profilanswer
 

Snif c'est si moche que ça ? :cry:
 
Sinon j'ai essayé d'utiliser ton second lien, mais ça ne change rien... par contre je ne suis pas sûr de bien l'utiliser :(

n°922136
Jubijub
Parce que je le VD bien
Posté le 13-12-2004 à 18:07:01  profilanswer
 

regarde dans le javatutorial, y'a un truc sur les thread à synchroniser avec une GUI ...regarde aussi du coté du SwingWorker ...


---------------
Jubi Photos : Flickr - 500px
n°922151
zedar
Posté le 13-12-2004 à 18:24:49  profilanswer
 

Ok merci je vais regarder ça :jap:

mood
Publicité
Posté le 13-12-2004 à 18:24:49  profilanswer
 

n°922585
zedar
Posté le 14-12-2004 à 11:32:37  profilanswer
 

Bon, merci bcp à tous, ça marche nickel avec un SwingWorker :jap:


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

  Indicateur de progression dans une JFrame

 

Sujets relatifs
Empecher le replacement des components d'une JFramePb barre de progression
faire une barre de progression pour chargement appli[Applet]JFrame principale et JFrames filles...
Ne pas afficher une JFrame dans la barre des tâchesPetit pbs pour une barre de progression
ASP-Barre de progressionbarre de progression
[Java] Jeu en JFrame[PHP] Upload et barre de progression
Plus de sujets relatifs à : Indicateur de progression dans une JFrame


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)