Bonjour,

J'ai un programme sous Swing. J'aimerai rafraichir une partie de l'écran lors du scan d'une carte (avec un lecteur mifare). Lors du scan, je modifie la valeur d'une variable static de la classe.

Actuellement, j'ai créé un thread... mais je trouve pas ça joli du tout :s et niveau fiabilité, c'est pas ça... ça marche 2 fois sur 3...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class maClasse extends JPanel {
 
    static public String id="";
    static public String idMemory="";
 
    public maClasse() {
    	Update t = new Update(); //écoute si y a un changement sur id
        t.start();
    }
 
// pleins d'autres méthodes :)
 
//class qui alerte quand il y a un changement sur id
    public class Update extends Thread {
        Thread t;
 
        public Update(){
                super();
        }
 
        public void run(){
            while( true ) {
                if(id != idMemory) {
                    annuleUser(); //si éventuellement un user ouvert, on le ferme
                    updateInfo(); //la méthode qui met à jour la partie de l'écran
                    id = idMemory; //on met à jour la valeur
                }
            }     
        }  
 
    }
}
Voila mon code actuel... Je trouve ça pas top... mais j'ai aucune idée de comment faire autrement. L'idée serait d'avoir un "listener" sur ma méthode qui vérifie si la valeur de id est différente de idMemory...

Est-ce que quelqu'un aurait une idée pour rendre le truc plus solide et plus propre ?

Merci d'avance