Temps d'attente entre 3 instructions JAVA
Résolu/Fermé
Nouyou
Messages postés
41
Date d'inscription
lundi 1 décembre 2014
Statut
Membre
Dernière intervention
16 mars 2016
-
Modifié par Whismeril le 28/10/2015 à 14:43
Nouyou Messages postés 41 Date d'inscription lundi 1 décembre 2014 Statut Membre Dernière intervention 16 mars 2016 - 10 nov. 2015 à 18:09
Nouyou Messages postés 41 Date d'inscription lundi 1 décembre 2014 Statut Membre Dernière intervention 16 mars 2016 - 10 nov. 2015 à 18:09
A voir également:
- Temps d'attente entre 3 instructions JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Blocage agriculteur carte en temps réel - Guide
- Picasa 3 - Télécharger - Albums photo
- Jeux java itel football - Télécharger - Jeux vidéo
2 réponses
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
Modifié par KX le 28/10/2015 à 19:57
Modifié par KX le 28/10/2015 à 19:57
Bonsoir,
La JFrame ne se rafraîchit qu'une fois l'actionPerformed terminé, donc tant que tu ne rends pas la main ça ne fait rien, et une fois fini (dans ton cas au bout de 3*3000 ms), c'est le dernier état qui est affiché (donc cyan, sans passer par blue ou red).
Il faudrait que tu regardes comment fonctionnes les SwingWorker, c'est le même principe qu'un Thread mais spécifiquement pour les interfaces graphiques, cela permet de déclencher une action, tout en terminant l'action en cours.
https://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html
La confiance n'exclut pas le contrôle
La JFrame ne se rafraîchit qu'une fois l'actionPerformed terminé, donc tant que tu ne rends pas la main ça ne fait rien, et une fois fini (dans ton cas au bout de 3*3000 ms), c'est le dernier état qui est affiché (donc cyan, sans passer par blue ou red).
Il faudrait que tu regardes comment fonctionnes les SwingWorker, c'est le même principe qu'un Thread mais spécifiquement pour les interfaces graphiques, cela permet de déclencher une action, tout en terminant l'action en cours.
https://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html
La confiance n'exclut pas le contrôle
FeelZoR
Messages postés
78
Date d'inscription
vendredi 30 octobre 2015
Statut
Membre
Dernière intervention
18 août 2016
4
2 nov. 2015 à 19:01
2 nov. 2015 à 19:01
Je n'ajouterai rien concernant la résolution de ton problème, mais dans ce code il me semble que ton if n'est jamais fermé au même titre que ta méthode actionPerformed(e).. problème d'accolades oubliées peut-être ?
8 nov. 2015 à 14:38
public void actionPerformed(ActionEvent e) {
if(e.getSource()==bouton){
worker=new SwingWorker(){
@Override
protected Void doInBackground() throws Exception {
Color [] tab = {blue,red,cyan};
int t=0;
for (int i=0;i<3;i++)
{ try {
Thread.sleep(2000);
autopic.setForeground(tab[i]);
} catch (Exception ex) {
Logger.getLogger(Fenetre.class.getName()).log(Level.SEVERE, null, ex);
}
}return null;}
};
}}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
Fenetre F=new Fenetre();
}
});
}
Modifié par KX le 8/11/2015 à 16:04
10 nov. 2015 à 18:09