IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

problème de getTableCellRendererComponent


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Par défaut problème de getTableCellRendererComponent
    Bonjour

    Grâce à une ancienne discussion " Colorier Cellule / ligne sélectionnée dans JTable " J'ai pu faire ce que je voulais.
    C'est à dire colorier certaine de ligne de ma table. Sauf que maintenant
    je n'arrive plus a selectionné un ligne de la table (elle n'est plus surligné en bleu)
    Voilà mon code
    CODE

    public class ColorRenderer extends DefaultTableCellRenderer {
    private String idDossier;
    public ColorRenderer(int idDossier) {
    super();
    this.idDossier = String.valueOf(idDossier);
    }

    public Component getTableCellRendererComponent(

    JTable table, Object value, boolean isSelected,

    boolean hasFocus, int row, int col){
    JLabel l = new JLabel();

    // si on est sur le dossier du jour on le met en couleur
    if (table.getValueAt(row,-1).equals(idDossier))
    l.setForeground(Color.BLUE);
    else
    l.setForeground(Color.black);
    l.setText((String)table.getValueAt(row,col));

    super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);

    }

    }
    CODE

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    plusieurs remarques sur ton code :
    - tu appelles super.getTableCellRendererComponent, mais tu ne te sers pas de ce qu'il te renvoie. Cette ligne ne sert à rien dans ton code, mais elle devrait.
    - ton renderer ne fait pas la différence entre une cellule sélectionnée et une non sélectionnée. C'est normal qu'il affiche les deux de la même manière.

    Voici un petit correctif :
    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
    public Component getTableCellRendererComponent(
            JTable table, Object value, boolean isSelected,
            boolean hasFocus, int row, int col){
     
      // on utilise le renderer super qui va tenir compte de
      // tout ce qu'on a besoin (sélection, focus)
      Component comp = super.
            getTableCellRendererComponent(
            table, value, isSelected, hasFocus, row, col);
     
      // si on est sur le dossier du jour on le met en couleur
     
      // a toi de voir si cette modification ne pose pas de problème
      // avec le renderer super
      if (table.getValueAt(row,-1).equals(idDossier))
        comp.setForeground(Color.BLUE);
      else
        comp.setForeground(Color.black);
    }
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Par défaut
    euh .. ben merci beaucoup, ça marche. Je me sens un peu bête là
    Je veux pas balancer mais c'était du code que j'ai vu sur le forum pourtant.
    Ou sinon c'est que j'avais pas compris, ce qui est possible

  4. #4
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Citation Envoyé par debutJava
    Je veux pas balancer mais c'était du code que j'ai vu sur le forum pourtant.
    Comme quoi, t'as bien fait de rouvrir un fil.

    Un ptit résolu ?
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo