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 ..ca me laisse perplexeThread.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 : 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 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(); }
Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.
Ha ca !! c'est pas fauxalors 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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Main.frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Thread.currentThread().sleep(2000);
Merci pour cette précisionAttention à 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 ! 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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager