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

  FORUM HardWare.fr
  Programmation
  Java

  chargement avec JProgressBar

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

chargement avec JProgressBar

n°1872507
mina85
Posté le 13-04-2009 à 19:06:17  profilanswer
 

Bonjour
 
j'aimerais ajouter à mon application un ProgressBar qui permet d'afficher le chargement de mon application
mais le problème c'est qu'avec JProgressBar je dois définir la valeur max à laquelle il doit etre fermé
 
 
JProgressBar progressBar = new JProgressBar(0, intProgressMaxValue);
 
comment remplacer ce "intProgressMaxValue" pour que le progressBar se ferme lorsque l'application se charge ?
 
Merci d'avance

mood
Publicité
Posté le 13-04-2009 à 19:06:17  profilanswer
 

n°1872581
artscoop
la fin des temps
Posté le 14-04-2009 à 03:16:01  profilanswer
 

Salut,
J'ai pas compris la question.
Je récapitule ce que j'ai compris.
 
T'as une application Swing dans laquelle tu commences par charger une JFrame avec une JProgressBar dedans.
Tu veux faire en sorte que lorsque la barre de progression disparaisse lorsque ton traitement est terminé.
 
Et bien, je ne crois pas me tromper en te disant que tu dois faire ça manuellement. Tu dois également calculer la valeur de ta barre de progression (et l'assigner avec un setValue() je suppose) en temps réel. Et lorsque ton chargement est terminé, fermer ta fenêtre.


---------------
Site de rencontre
n°1872703
mina85
Posté le 14-04-2009 à 11:27:27  profilanswer
 

Oui ce que tu as compris est exact  
mais calculer le temps d'exécution n'est pas pratique car ça dépend d'une machine à une autre !

n°1872765
atmakefka
Posté le 14-04-2009 à 12:42:51  profilanswer
 

C'est pas ce temps d'exécution là, mais le temps de ton code. Un exemple pour mieux comprendre. J'avais fais un éditeur de carte il y a quelques temps, en utilisant la progress bar pour informer sur le chargement. Et si il y avait 200 tuiles à charger pendant l'affichage de la progress bar, que j'en avais déjà chargé 100, alors c'était 50%. Ton application doit faire certains traitement pendant le temps de chargement, et c'est à toi de dire à quel pourcentage tu es après chaque partie de ton code. Autre exemple, si tu dois faire 3500 calculs pendant le chargement, au bout n calculs effectués, tu es à x = n*100/3500 %.
 
ceci t'aidera peut être:
 
http://java.sun.com/docs/books/tut [...] gress.html

n°1872816
mina85
Posté le 14-04-2009 à 15:04:48  profilanswer
 

Merci pour le lien

 

mais dans ce document il y a
progressBar = new JProgressBar(0, task.getLengthOfTask());
est ce que getLengthOfTask() est la méthode qui renvoie le temps de chargement de l'application ?
si on va faire des calculs comme t'as déjà dit : dans certain cas le progressbar se ferme alors que l'application ne s'est pas chargée totalement (si la machine devient lente par exemple ou bien si l'application essaie de se connecter à un serveur qui ne répond pas )
c'est ça mon probléme : ce temps d'exécution dont tu parles n'est pas facile à estimer car à chaque fois ça change (selon l'état du processeur, la connexion au serveur ...)


Message édité par mina85 le 14-04-2009 à 15:06:06
n°1872849
atmakefka
Posté le 14-04-2009 à 15:52:58  profilanswer
 

Mais tu n'as pas bien saisi la différence : le temps de calcul pour la progress bar est le nombre d'opérations que toi tu fais, peu importe la plateforme concernée.
 
ça sera effectivement plus rapide sur certaines machines que sur d'autres, mais pour un % donné de la progress bar, les mêmes instructions auront été effectuées quelque soit la machine. Il n'est pas question de calculer le temps en fonction des machines, mais juste de dire qu'à tel moment de ton code, ça fait x % du programme chargé, et ceci uniquement en fonction de tes appels de méthodes, etc, comme j'ai donné des exemples avant. Après oui ce pourcentage sera surement atteint plus ou moins rapidement selon les machines.
J'sais pas si t'as une boucle for (int i =0; i<100; i++) { progress = i; ...}, tu as décidé qu'à chaque fois que i est incrémenté, ton pourcentage d'accomplissement vaut i. Tu as calculé un % d'avancement quelque soit la machine.
 
getLengthOfTask() n'existe pas, c'est à toi de calculer la progression dans doInBackground(). Faut hériter de SwingerWorker etc. Quand tu regardes le code complet de l'exemple, tu vois bien que le getLengthOfTask n'existe pas : http://java.sun.com/docs/books/tut [...] rDemo.java, l'appel est progressBar = new JProgressBar(0, 100); et non pas progressBar = new JProgressBar(0, task.getLengthOfTask());
 
Toujours dans l'exemple, le pourcentage de progress est calculé dans doInBackground(), c'est la variable progress. Ensuite tu en tiens compte avec setProgress et le sleep n'est là que pour qu'on voit la barre se charger, sinon ça irait trop vite et on ne verrait pas la barre se charger.
 
 
 

n°1872964
mina85
Posté le 14-04-2009 à 18:52:45  profilanswer
 

Merci pour toi atmakefka, j'ai bien saisi la différence maintenant
je vais essayer de le faire et je vais poster le résultat sur le forum (si Dieu le veux)

n°1874526
mina85
Posté le 17-04-2009 à 18:19:42  profilanswer
 

voilà ça marche maintenant
merci pour votre aide !


Message édité par mina85 le 17-04-2009 à 20:58:18

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

  chargement avec JProgressBar

 

Sujets relatifs
[Javascrit] page de chargementLoad incomplet au 1er chargement de la page avec fichier XML
Voil noire sur l'ecran lors d'un chargement[JSF] chargement incomplet suite à redirection dans un PhaseListener
Interrompre un chargement AjaxJavascript + probleme lors du chargement d'une page
chargement scripts dans un site InternetPage de chargement
éviter le chargement complet lorsqu'on change de page ?Ouvrir lightbox au chargement d'une page
Plus de sujets relatifs à : chargement avec JProgressBar


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