[Java]Petit problème interface graphique

Petit problème interface graphique [Java] - Java - Programmation

Marsh Posté le 23-11-2010 à 12:45:02    

Bonjour,  :)  
Je suis débutant en Java et je suis tombé sur un problème sur un de mes programmes.
En gros mon programme affiche une fenêtre et dans cette fenêtre des cases remplies de ronds de 4 couleurs différentes (toujours les mêmes, mais tous les ronds sont remplis aléatoirement- paint(Graphics g).  
J'ai une méthode booléenne qui gère l'état des cases (elle teste si la couleur d'une case est égale à une de mes 4 couleurs sinon  la case est vide).  
Pour vider une case j'utilise une méthode qui met la valeur de la couleur de cette case à null. Lorsque j'appelle cette méthode, la case est vidée, en gros elle a la même couleur que le fond de ma fenêtre (setBackground non défini).
Jusque là je n'ai de problème, il survient lorsque je survole avec le pointeur de ma souris une case pleine.Si après avoir fait ça je survole une case vide, elle  prend automatiquement la couleur de la case pleine que je viens de survoler alors qu'elle est censée rester vide .  
Savez vous à quoi cela est dû ?:??:  
Merci. :hello:  
 

Reply

Marsh Posté le 23-11-2010 à 12:45:02   

Reply

Marsh Posté le 27-11-2010 à 10:56:05    

J'ai résolu mon problème en faisant apparaitre et disparaitre ma fenêtre en un laps de temps très court avec setVisible, donc sans que l'on puisse voir qu'elle a vraiment disparue.
 
Cependant j'en ai un autre qui sera peut-être facile de me donner des réponses.
En gros j'ai créé une barre d'état dans ma fenêtre dans  laquelle je veux fait apparaitre le contenu d'une variable dynamique grâce à setText:

Code :
  1. JLabel Barre = new JLabel();
  2. Barre.setBorder(new EtchedBorder());
  3. Barre.setText("Nombe de clics: "+nbclics);
  4. this.add(Barre,BorderLayout.SOUTH);


 
J'ai un MouseListener, qui à chaque fois que je clique dans ma fenêtre incrémente un entier nommé nbclics. Lorsque je fais apparaitre le contenu de ce nbclics dans la console, il n'y pas de problème, la valeur de cette variable est incrémentée à chaque clics. Cependant elle ne l'est pas dans ma barre d'état. J'ai aussi essayé de transformé nblics en <String> avec "String.valueOf", ça ne semble pas marcher. Une idée ?
 

Reply

Marsh Posté le 27-11-2010 à 11:42:09    

Bonjour, il faut que tu mettes
Barre.setText("Nombe de clics: "+nbclics);
dans ton mouselisterner de façon a mettre a jour le texte de la barre d'état a chaque clic


---------------
Seul Google le sait...
Reply

Marsh Posté le 27-11-2010 à 11:55:57    

Merci, ça marche!
 En fait il faut définir la barre d'état entière dans le MouseListener.

Reply

Marsh Posté le 27-11-2010 à 22:07:36    

Nan
 faut juste mettre le setText dans le mouseListener, la barre d'état tu la définis dans ta classe et tu l'ajoutes à la fenêtre a l'initialisation de celle-ci


---------------
Seul Google le sait...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed