Bonjour à tous!
Comme indiqué dans le titre, je planche sur un problème... qui me paraît totalement illogique!
Contexte :
Une liste d'action, dont je souhaite faire varier le cours de manière peu significative, toutes les 3 secondes. Pas de soucis pour le Modifier.
MAIS, je souhaite aussi modifier la couleur du JLabel concernant le cours de l'action... Par ex vert si le cours monte, rouge s'il descend, et ce pour chaque action.
Problème: Dans ma boucle pour chaque action,
SI je met à la fin un petit message (JOptionPane.showmessageDialog), le changement de couleur s'effectue, le cours varie
Si je n'en met pas, la couleur ne change pas, et seul le cours varie!
Niveau graphique:
- Sans Message: Le cours varie toutes les trois secondes.
- Avec Message: Le cours change.La couleur change. le message s'affiche, re rebelote à l'action suivante.
Comment se fesse?
Voici le code concerné:
Un thread dans une classe, qui toutes les 3 secondes appel la méthode suivante:
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
33
34 public void variationCours(JPanel panTemp){ for (int i = 0; i <= this.nbListeAction -1; i++){ // Définition d'un nombre aléatoire qui symbolisera une variation "non significative" d'un cours. (de -0.7% à +0.7%) Random variationAleatoire = new Random(); int valeur = -7 + variationAleatoire.nextInt(14); double coursTemp = this.get(i).getCoursAction(); double newCoursTemp = this.get(i).getCoursAction() + (this.get(i).getCoursAction() * valeur / 100); // Appel de la méthode de variation d'action this.get(i).setCoursAction(valeur); //Changement de couleur du cours de l'action : Vert si le cours monte, rouge si descend try { if (coursTemp <= newCoursTemp) { panTemp.getComponent(i*3 +1).setForeground(Color.green); } else panTemp.getComponent(i*3+1).setForeground(Color.red); } catch (Exception e) { // TODO Auto-generated catch block JOptionPane.showMessageDialog(null, "Erreur à l'indice : " + i); } // Quand je met le message, la couleur se modifie, le cours se modifie. sinon seul le cours se modifie! //JOptionPane.showMessageDialog(null, "bouh"); } }
Partager