Changer la couleur d'un élément sélectionné dans jlist

nacef007 Messages postés 28 Date d'inscription samedi 10 mars 2012 Statut Membre Dernière intervention 15 décembre 2012 - 14 déc. 2012 à 15:39
nacef007 Messages postés 28 Date d'inscription samedi 10 mars 2012 Statut Membre Dernière intervention 15 décembre 2012 - 15 déc. 2012 à 16:24
Bonjour à tous,

Je réalise une interface graphique avec swing et je suis bloqué devant un truc et j'ai besoin de votre aide. en fait j'ai un bouton et une jliste. je veux que lorsque je clique sur un bouton, l'élément sélectionné change de couleur. puis lorsque je sélectionne un autre élément l'ancien reste modifié et le nouveau élément sélectionné revient à la couleur principale.
J'ai essayé mais il y a un problème. En fait j'ai redéfini la méthode SelectedListCellRenderer() et voici le code que j'ai utilisé:
class SelectedListCellRenderer extends DefaultListCellRenderer {

private static final long serialVersionUID = 1L;

@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (isSelected) {
c.setForeground(Color.RED);

}

return c;
}

}

puis dans l'évenement du bouton j'ai mis:
listt.setCellRenderer(new SelectedListCellRenderer());

le problème que ca change au début la couleur de l'élément sélectionné puis lorque je sélectionne un autre élément, l'ancien élément retourne à sont premier état et le deuxième change de couleur sans que je clique autre fois sur le bouton. Par contre moi je veux que le premier élément reste modifié (e rouge par exemple) et le deuxième élément sélectionné reste normal sauf si je clique sur le bouton pour qu'il change du couleur.

S'il vous plais aidez moi car vraiment j'i besoin de ça dans mon projet et je suis bloqué depuis 3 jours.

Merci d'avance.

3 réponses

Utilisateur anonyme
14 déc. 2012 à 19:03
Salut,

Ici.

Cordialement,

...\ Dan /...
0
nacef007 Messages postés 28 Date d'inscription samedi 10 mars 2012 Statut Membre Dernière intervention 15 décembre 2012
15 déc. 2012 à 03:06
Bonsoir,
Je te remercie pour ta réponse mais il y a un problème. Normalement, la redéfinition de la méthode getListCellRendererComponent() se fait en dehors de la méthode ActionPerformed() et dans la ActionPerformed je fais l'appel list.setCellRenderer(new MyCellRenderer());
J'ai essayé de faire ça mais j'ai rencontré un problème dans la condition que je vais mettre dans la redéfinition de la méthode getListCellRendererComponent() "if taCondition == true), la ou normalement je dois mettre (e.getsource()==bouton) alors que j'ai pas encors arrivé aux évènements sur les boutons.
J'ai essayé de redéfinir la getListCellRendererComponent()à l’antérieure de la méthode ActionPerformed() mais a ce moment là, toute la liste est devenue en rouge alors que moi je veux juste l'élément sélectionné change du couleur.
J'espère que j'ai bien expliqué le problème.
S'il vous plais aidez moi car je suis vraiment bloqué et j'ai essayé longtemps mais j'ai pas arrivé à le résoudre
0
nacef007 Messages postés 28 Date d'inscription samedi 10 mars 2012 Statut Membre Dernière intervention 15 décembre 2012
15 déc. 2012 à 16:24
Aucune Réponse??
Merci d'avance.
0
Rejoignez-nous