Thread sleep dans une boucle
Bonjour,
J'ai juste une petite question d'esthétisme :
Je voulais faire un cadre clignotant autour d'un bouton. N'étant pas trop habitué à faire des animations, j'ai bricolé un truc :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| private class Blinking extends Thread {
private boolean continuer=true;
@Override
public void run() {
while(continuer) {
monBouton.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED, Color.red, Color.red.brighter()));
try {
Thread.sleep(500);
} catch (InterruptedException ex) {
Logger.getLogger(Loading.class.getName()).log(Level.SEVERE, null, ex);
}
monBouton.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED, ColorManager.transparent(), ColorManager.transparent()));
try {
Thread.sleep(500);
} catch (InterruptedException ex) {
Logger.getLogger(Loading.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void arreter() {continuer=false;}
} |
Je n'utilise pas stop() d'une part parce que l'instruction est dépréciée et d'autre part afin de m'assurer de l'état final de la bordure.
Questions :
- Est-ce que vous pensez que c'est un bonne façon de procéder ? Y a-t-il une façon plus conventionnelle ou plus propre ?
- NetBeans me met un Hint sur le "Thread.sleep(..);". Il y a une meilleure façon de faire ?
Merci