From: "Dominique Isatias" <dom.isatias@free.fr>
To: <java@u-strasbg.fr>
Subject: setBackground pour un JTree
Date sent: Mon, 8 Oct 2001 10:59:07 +0200
Send reply to: java@u-strasbg.fr
Bonjour à tous,
Je voudrais changer le background et le foreground de certains noeuds de
mon arbre.
J'ai donc implémenté un DefaultTreeCellRenderer où j'ai redéfini la
méthode
public Component getTreeCellRendererComponent(
JTree tree, Object value,
boolean isSelected, boolean isExpanded,
boolean isLeaf, int row, boolean hasFocus) {
// appel de la méthode par défaut
super.getTreeCellRendererComponent(tree, value, isSelected,
isExpanded, isLeaf, row, hasFocus);
// changement du background et foreground
if (((MyNode)value).isSpecial())
{
setForeground(Color.blue);
setBackground(Color.yellow);
}
return this;
}
A l'exécution, effectivement le foreground est bien de la bonne couleur,
mais le background reste obstinément blanc.
Quelqu'un a-t-il une idée ?
Merci
Domi
Date sent: Mon, 08 Oct 2001 11:48:07 +0200
From: "nicolas.marigliano" <nicolas.marigliano@c-s.fr>
To: java@u-strasbg.fr
Subject: Re: setBackground pour un JTree
Bonjour,
Vu comme çà je vois pas trop à quoi sert ton appel à la méthode
super.getTreeCellRendererComponent(...) étant donné que tu ne réutilise
pas le composant qui t'es renvoyé. En fait tu fais tes setFore/Back sur le
JLabel dont DefaultTreeCellRenderer est l'héritier.
Mais çà ne résout pas ton pb puisque tu arrives bien à changer l'encre. En
regardant l'API du DefaultTreeCellRenderer il y a un petit commentaire sur
le setBackground. D'après ce que j'ai compris il y a des restrictions sur
les couleurs que l'on peut utiliser et qui ne seront pas considérées comme
transparentes -> les ColorUIResource en sont exclus et ton jaune défini
par Color.yellow en fait justement partie. Essayes de créer ta propre
couleur jaune à passer en paramètre de setbackground Je crois que le jaune
standard c du R-255 G-255 B-0
-> setBackground(new Color(255,255,1)
Dominique Isatias a écrit :
> Bonjour à tous, Je voudrais changer le background et le foreground de
> certains noeuds de mon arbre. J'ai donc implémenté un
> DefaultTreeCellRenderer où j'ai redéfini la méthode public Component
> getTreeCellRendererComponent(
> JTree tree, Object value,
> boolean isSelected, boolean isExpanded,
> boolean isLeaf,
> int row, boolean hasFocus) { // appel
> de la méthode par défaut super.getTreeCellRendererComponent(tree,
> value, isSelected, isExpanded, isLeaf, row, hasFocus); // changement
> du background et foreground if (((MyNode)value).isSpecial()) {
> setForeground(Color.blue); setBackground(Color.yellow);
> } return this;
> } A l'exécution, effectivement le foreground est bien de la bonne
> couleur, mais le background reste obstinément blanc. Quelqu'un a-t-il
> une idée ? Merci Domi
--
Nicolas Marigliano
CS SI - Departement ETS
ZAC de la Grande Plaine - Rue Brindejonc des Moulinais
BP 5872 Toulouse Cedex 5 - 31506 France
Tel: (33)5.61.17.64.52
Date sent: Mon, 08 Oct 2001 11:51:08 +0200
From: Guillaume Desnoix <guillaume@desnoix.com>
To: java@u-strasbg.fr
Subject: Re: setBackground pour un JTree
Send reply to: java@u-strasbg.fr
Dominique Isatias:
> A l'exécution, effectivement le foreground est bien de la bonne couleur,
> mais le background reste obstinément blanc. Quelqu'un a-t-il une idée ?
setOpaque(true);
Guillaume
Date sent: Mon, 8 Oct 2001 14:13:18 +0200 (CEST)
From: Alain AITOULHA <aitoulha@yahoo.fr>
Subject: Re: setBackground pour un JTree
To: java@u-strasbg.fr
Send reply to: java@u-strasbg.fr
J'ai eu il y a un moment le même pb. De mémoire,
regardes du côté de la méthode setOpaque()
(JComponent). Tu devrais pouvoir faire un
setOpaque(true) quelque part.
Alain
--- Dominique Isatias <dom.isatias@free.fr> a écrit :
> Bonjour à tous,
>
> Je voudrais changer le background et le foreground
> de certains noeuds de mon arbre.
>
> J'ai donc implémenté un DefaultTreeCellRenderer où
> j'ai redéfini la méthode
> public Component getTreeCellRendererComponent(
> JTree tree, Object
> value,
> boolean isSelected,
> boolean isExpanded, boolean isLeaf,
> int row, boolean
> hasFocus) {
>
> // appel de la méthode par défaut
> super.getTreeCellRendererComponent(tree, value,
> isSelected, isExpanded, isLeaf, row, hasFocus);
>
> // changement du background et foreground
> if (((MyNode)value).isSpecial())
> {
> setForeground(Color.blue);
> setBackground(Color.yellow);
> }
>
> return this;
> }
>
> A l'exécution, effectivement le foreground est bien
> de la bonne couleur, mais le background reste
> obstinément blanc.
>
> Quelqu'un a-t-il une idée ?
>
> Merci
>
> Domi
>
>
___________________________________________________________
Do You Yahoo!? -- Un e-mail gratuit @yahoo.fr !
Yahoo! Courrier : http://fr.mail.yahoo.com