Bouton jbutton label qui décompte

Résolu/Fermé
toto50 Messages postés 126 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 25 juin 2013 - 25 juin 2013 à 11:30
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 25 juin 2013 à 12:58
Bonjour,
j'aimerai avoir un boutton avec un label qui décompte
voici mon code :
	  for (i=0; i<10; i++){
		  temps = 10 - i;
		  textpira = String.valueOf(temps);
		  pirButton.setText(textpira);       	        
		  
		  long t1=System.currentTimeMillis();
		  while(System.currentTimeMillis()<t1+1000); 
		  {

		  }
	  }
//code vers une autre class
 

en faite le problème que j'ai c'est que l'interface graphique s'arrête.
Le premier texte reste afficher mais au bout de seconde le code d'après s'exécute bien.
J'ai éssayer avec des Thread.wait("1000") mais ça fait pareil.

J'utilise Eclipse EE IDE et JDK 1.7.0_25

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
25 juin 2013 à 11:42
Commence déjà par enlever ce méchant point virgule à la fin de ton while !
Mais le Thread.wait est une bien meilleure idée que la boucle...

Par contre attention à ne pas exécuter ce code à l'intérieur d'un Listener par exemple, l'interface graphique ne sera pas actualisée tant que l'action n'est pas terminée.
1
toto50 Messages postés 126 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 25 juin 2013 24
25 juin 2013 à 12:12
Effectivement ce code est exécuté dans un Listener (c'est un listener qui appelle un fonction)
Je ne vois vraiment pas comment faire
0
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
25 juin 2013 à 12:58
En général l'idée est de créer un nouveau Thread, ainsi la seule action du Listener est de créer l'objet Thread et le démarrer, ça rend donc immédiatement la main et permet à la fenêtre de se rafraîchir correctement.
Evidemment, dans ton cas, le contenu du Thread correspondrait au code qui modifie le bouton toutes les secondes. Il faut bien sûr s'assurer que l'action de départ soit désactivée le temps que tout cela se termine, sinon tu vas créer des Threads concurrents qui vont faire n'importe quoi...
0