[JAVA] JProgressBar

JProgressBar [JAVA] - Java - Programmation

Marsh Posté le 17-04-2002 à 20:59:33    

Voila mon problème:
 
J'ai une interface avec une barre de progression JProgressBar qui permet d'indiquer la progression de la réception d'un fichier.
 
voici la boucle qui reçoit le fichier
 
while ((unOctet = fromServer.read()) != -1)
{
 versFichier.write(unOctet);
 nboctetsRecus++;
 interface.progressBar.setValue((int)100*nboctetsRecus/nbOc
tetsTotal);
 interface.progressBar.repaint();
}
 
Le problème est que pendant le téléchargement la barre ne progresse pas, mais une fois qu'il est fini elle se remplit instantanément.

Reply

Marsh Posté le 17-04-2002 à 20:59:33   

Reply

Marsh Posté le 17-04-2002 à 21:03:08    

tu mélanges présentation et processing ce qui n'est pas clair. Tu dois avoir deux threads séparée:
 
Une pour l'affichage qui, périodiquement, se rafraichit sur base des paramètres que tu as introduit
 
Une autre qui fait le processing effectif et qui met à jour la valeur de la progress bar
 
A coté de cela, je te conseille fortement de lire plus qu'un octets à la fois, les performances risquent de se dégrader très rapidement avec ta manière ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 17-04-2002 à 23:12:06    

ca n'explique pas pourquoi ca progress bar ne fonctionne pas ...
ca devrait marcher même si c'est pas très bô ...

Reply

Marsh Posté le 18-04-2002 à 09:23:16    

benou a écrit a écrit :

ca n'explique pas pourquoi ca progress bar ne fonctionne pas ...
ca devrait marcher même si c'est pas très bô ...  




 
Je suis d'accord mais je n'ai ni le temps ni l'envie de me demander, sur base de 4 lignes de code, pq ca ne marcherait pas. Peut etre qu'en réfléchisant sur son design, il trouvera la solution. Et si ce n'est pas le cas, et bien qu'il poste qqch de plus complet et on devrait trouver l'origine du probleme ...
 
Et toi benou, tu sais pq ca ne marche pas sur base du code de sa boucle ?


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 18-04-2002 à 09:43:43    

Ben déjà, normalement, une JProgressBar, ça s'utilise pas comme ça! Que vient foutre du code graphique dans une écriture de fichier, non de non!
 
La JProgressBar a un système de listeners, c'est pas pour les chiens...
 
A mon sens, il faut isoler les problèmes : la classe qui écrit le fichier devrait implémenter ChangeListener, et la classe de gestion de la progressbar doit enregistrer le listener qui va bien...

 

[jfdsdjhfuetppo]--Message édité par gfive--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 18-04-2002 à 14:58:01    

DarkLord a écrit a écrit :

 
Et toi benou, tu sais pq ca ne marche pas sur base du code de sa boucle ?  




je suis benou, pas devin :)

Reply

Marsh Posté le 18-04-2002 à 14:59:32    

benou a écrit a écrit :

 
je suis benou, pas devin :)  




 
bin voilà où je voulais en venir. Quitte à lui demander d'expliquer mieux autant lui dire en meme temps que son design est pourri ;)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 18-04-2002 à 16:41:40    

Va faire un tour sur le Javadoc pour la classe suivante:
 
javax/swing/ProgressMonitorInputStream.html


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 18-04-2002 à 19:01:12    

Je sais bien que c'est crado, mais je l'ai refait en MVC
(avec les classes Observable et Observer) et ça marche pas plus (ça fait exactement la même chose) et je comprends vraiment pas pourquoi.
 
gfive: Aurais-tu un exemple ou une doc avec ta façon de procéder ?

Reply

Marsh Posté le 19-04-2002 à 08:57:13    

bah, malheureusement, non! :d

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed