Rafraîchir Label durant une boucle. [Résolu]

sarahjtm 29 Messages postés mercredi 1 octobre 2008Date d'inscription 15 janvier 2012 Dernière intervention - 15 janv. 2012 à 13:59 - Dernière réponse : cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention
- 26 janv. 2012 à 07:56
Bonjour à tous,

Je vous explique tout ça, je dois mettre à jour un Label durant une boucle 'while' mais bien entendu, la Label se met à jour qu'à la fin parce que le code passe avant, voici en gros mon code :

JPanel Panel = new Panel();
add(Panel);
 
JLabel Label = new JLabel();
Panel.add(Label);
 
ResultSet res = stmt.executeQuery("SELECT * FROM table LIMIT 0 , 100");
 
while(res.next()) {
 
Label.repaint();
Thread.sleep (100);
Label.setText("Invitation de " + res.getString(3) + "...");
 
}


J'aimerais que la Label se rafraîchisse durant la boucle et non pas une fois celle-ci terminée. Je précise tout de même que l'application est une applet.

Merci d'avance !
SoGeek.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
cs_laurent1024 987 Messages postés mardi 31 mai 2005Date d'inscription 30 août 2012 Dernière intervention - 16 janv. 2012 à 09:32
3
Merci
Bonjour.
Il faut que tu utilises des threads.
En java, le thread principal sert à mettre à jour les composants graphiques. Si tu fais un traitement "long" dans le thread principal, la partie graphique va être "figée".
Ton traitement de base de données doit être fait dans un thread, qui fera, la mise à jour de ton label.

Cdt

Merci cs_laurent1024 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de cs_laurent1024
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 16 janv. 2012 à 08:21
0
Merci
Bonjour,

Je dirais que ton code fonctionne mais que ta temporisation est trop courte (un dixième de seconde). Essaye de mettre une tempo de 1000 et tu verras une différence je pense.
Commenter la réponse de cs_Julien39
lail1001 4 Messages postés vendredi 13 février 2009Date d'inscription 16 janvier 2012 Dernière intervention - 16 janv. 2012 à 21:33
0
Merci
bonjour,tt
probl.
lorsque j'ai utilisé la méthode setVisibe(true);
dans une boucle affin de actualiser mes classe aussi les composant de interface graphique (Jlabel...) je remarque que l'interface s'ouvre plusieurs fois mais je ne trouve pas une méthode de fermer l'avant dernière et laissé que la dernière exécuter
merci de m'aider

public class Index implements ActionListener {
Timer t = new Timer(600000,this);

Index() {
t.start();

}
int i=0;
public static void main(String args[]) {
Index td = new Index();

affich I= new affich();
I.getContentPane().setBackground(Color.BLACK);
JFrame currentFrame = I;

currentFrame.setVisible(false); currentFrame = I; currentFrame.setVisible(true);


}
Commenter la réponse de lail1001
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 26 janv. 2012 à 07:56
0
Merci
Bonjour,

Autre question => Nouveau sujet.

J'accepte la réponse de laurent1024 à ta place.
Commenter la réponse de cs_Julien39

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.