Paint selon des couleurs différentes

fil -  
 fil -
Hello,
J'ai deux éléments dans un Graphics Java (un String et un Polygon). Je voudrais afficher le Polygon tout le temps et le String uniquement lorsque j'appuie sur un JButton. Pour faire ceci, je surcharge la méthode 'paint' de mon JLabel. Malheureusement, le SetForeground s'effectue sur tous les éléments alors que je voudrais définir une couleur (de fond) particulière pour effacer le String.
Comment faire?
Merci de votre réponse...
A voir également:

7 réponses

Nettogrof Messages postés 522 Statut Membre 672
 
Ton polygone et ta string sont dans le meme JLabel?

Avec un peu de code, je vais avoir plus de chance de t'aider

Nettogrof tseb era seiromem emoS
0
fil
 
Ok, merci voici ma surcharge de paint():

public void paint(java.awt.Graphics g){
super.paint(g);
if (routePrivee.isVisible()){
this.setForeground(java.awt.Color.BLACK);
g.drawString(routePrivee.getNom(), routePrivee.poly.xpoints [0] + 30, routePrivee.poly.ypoints[0] + 10);
g.drawPolyline(routePrivee.poly.xpoints, routePrivee.poly.ypoints, routePrivee.poly.npoints);
}
else{
this.setForeground(this.getBackground());
}
}

Ce code fait partie d'une classe Panneau qui hérite de JPanel.
0
fil
 
Ouh lala...
c'est pas très lisible tout ça ...désolé!
0
Nettogrof Messages postés 522 Statut Membre 672
 
Sera-t-il une bonne idée de mettre ta string et ton polygone dans 2 JLabel différent?

Nettogrof tseb era seiromem emoS
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fil
 
Oui, j'y ai déjà pensé mais le problème c'est que la String doit être supperposée au polygone. Alors avec deux JLabels je ne crois pas que je puisse les supperposer...
0
Nettogrof Messages postés 522 Statut Membre 672
 
Je pense que oui, mais je ne peux pas le garantir car je suis dans l'impossibilité de faire des tests.

Nettogrof tseb era seiromem emoS
0
fil
 
Ok, j'ai trouvé,
je fais ça comme un petit porc mais ça marche!!!
Je teste un booléen pour savoir si oui ou non j'affiche la String puis j'appelle la méthode repaint().
Merci qd même pour ton aide
A +
fil
0