c'est pas un bug alors .. j'ai toujours fais confiance à Java ;)
Version imprimable
c'est vrai que java et réputé pour ca fiabilité !!! Un bug comme ca ca 'aurait pas passé inaperçu !!
En faite si j'ai bien compris, lorsque je fais une requête , celle si est asynchrone? Mais par contre pour quand j'ai fait :
Ca n'a pas bloqué l'exécution de la méthode pendant 2sec, donc ce n'était pas le thread associé à la méthode, non? Pourrais-tu m'expliquer please :aie: ..ca me laisse perplexe :cry:Citation:
Thread.currentThread().sleep(2000);
a+
Attention à quand même exécuter les actions Swing dans l'EDT.
Ce qu'il faut faire dans ce genre de cas:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public void actionPerformed(ActionEvent e) { Main.frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Thread monThread = new Thread() { public void run() { // sleep(2000); Thread.sleep(5000); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { Main.frame.setCursor(Cursor.getDefaultCursor()); } }); } }; monThread.start(); }
Ha ca !! c'est pas faux ;)Citation:
alors tout ca ?
Citation:
Envoyé par slim_java Voir le message
j'ai toujours fais confiance à Java
mais parfois, c'est un peu compliqué quand même
Sinon ma question pour faire simple c'est pourquoi avoir besoin d'un thread juste pour changer le curseur de la sourie lors d'une requete BD ou d'un sleep....
Et aussi lorsque que j'ai fait
Pourquoi ca qu'a changé le cursor qu'a la fin du sleep .....Code:
1
2
3
4 Main.frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Thread.currentThread().sleep(2000);
Merci pour cette précisionCitation:
Attention à quand même exécuter les actions Swing dans l'EDT.
J'ai lue l'excellent article http://gfx.developpez.com/tutoriel/j...ing-threading/, et j'ai presque compris :lol: ! Donc à chaque fois qu'on touche aux composant swing, on le fait dans le thread EDT via invokeLater
salut.
pour ne pas bloquer l'EDT
ok merci!