didoux95
Messages postés845Date d'inscriptionmardi 25 avril 2006StatutMembreDernière intervention 1 août 2017
-
23 févr. 2007 à 11:18
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
23 mars 2007 à 20:23
Bonjour a tous.
je n'arrive pas a utiliser Runnable.
Voila comment est ce que je procede:
public class Y extends JFrame implements Runnable {
public Y(){
//Mon interface graphique ici
}
public void run(){
//Mon code pour faire avance ma JProgressBar
System.out.println("operation lancer");
int Progression;
while (BarreProgression.getValue() != X.getByteStop()){
Progression = X.getProgression();
BarreProgression.setValue(Progression);
BarreProgression.setString ("Progession: " + (int)(BarreProgression.getPercentComplete()*100) + "%");
}
System.out.println("operation fini");
}
//Methode appele lorsque le bouton Lancer est cliquer
public void Lancer(){
new Thread(this).start();
}
}
Mon code est fonctionnel, le truc sur le quel je bloque c'est que le ProgressBar n'avance pas. (! sur ma console s'affiche bien les "operation lancer" et "operation fini" ce qui "prouve" que le code est executer !).
je pense que, comme je creer un nouvel objet, lors de l'execution du thread, l'objet BarreProgression n'existe plus.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 23 févr. 2007 à 12:02
Salut:
La raison pour la quellle ton JProgressBar n'avance pas et dû au fait que le code que tu utilises est [unsafe] toute modification d'un composant Swing doit se faire dans le [Dispatch-Event Thread].
Pour le faire utiliser invokeLater () ou invokeAndWait ().
[SwingUtilities.invokeLater (new Runnable ());]
SwingUtilities.invokeLater (new Y ());
______________________________________________________________________
A.B. : La lumière voyage plus vite que le son. C'est pourquoi certainespersonnes paraissent brillantes jusqu'à ce qu'elles commencent à parler ...
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 23 févr. 2007 à 13:45
Bon j'ai dû affronter le même problème que toi. Je te conseille de voir plus d'articles à propos de ce sujet sur developpez.com.
__________________________________________________________
A.B. : Suis le conseil de celui qui te fait pleurer, et non de celui qui te fait rire.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 23 mars 2007 à 20:23
Salut:
Autre remarque avec JDK 1.6 il y a une classe très intéressante qui te permet de faire ça à perfection: SwingWorker.
Voici un exemple d'un progresse bar pour la copie des fichiers avec SwingWorker: