voilalesoleil
Messages postés5Date d'inscriptionlundi 4 décembre 2000StatutMembreDernière intervention 4 octobre 2013
-
24 nov. 2008 à 11:13
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 2010
-
24 nov. 2008 à 14:30
Bonjour,
Voilà mon problème, je souhaite faire défiler un compteur : 10, 9, 8 ... toutes les secondes.
Dans la console, pas de problème. Cependant j'ajoute une petite complexité, il faut que ce défilement s'affiche dans un label.
A partir de là, cela se complique. Ma fenêtre refuse de s'afficher
tant que le décompte n'est pas arrivé à la fin. Du coup je ne vois pas
le défilement se faire ...
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 24 nov. 2008 à 14:19
Salut,
Je te conseille de regarder du côté de la classe javax.swing.Timer
Cela permet de créer un objet qui a en paramètre un délai et une action.
Après un certain délai, ce timer va exécuter l'action, ça construirait comme ça pour toi :
Timert
=
new Timer(1000,
new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) { Test.
Seulement, je te conseille de faire plutot des getters et setters pour récupérer la valeur du compteur et pour affecter la nouvelle valeur à ton JLabel.
Ensuite, il te suffit de faire une simple boucle "for" qui va compter 10 fois dans laquelle tu lanceras ton timer :
// dans affichage par exemple
for
(
int i = 0; i < 10; i++) {
t.start();
}
Et voilà, le tour est joué
<hr width="100%" size="2" />
C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
dvoraky
Messages postés744Date d'inscriptiondimanche 1 avril 2007StatutMembreDernière intervention 9 mai 20108 24 nov. 2008 à 14:30
Re,
je tenais à m'autocorriger...
Tout d'abord, dans affichage(), inutile de faire une boucle for, écris juste t.start(), cela répètera toutes les 1 seconde l'action en question.
Ensuite, dans l'action justement, après avoir décrémenter ta variable iTimeUp, il te faut tester si iTimeUp == 0, si oui, tu écris juste t.stop() et tac ça s'arrêtera.
Voilà, autocorrection terminé.
<hr width="100%" size="2" />
C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...