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

Composants Java Discussion :

Appliquer un renderer sur une cellule d'une JTable


Sujet :

Composants Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Appliquer un renderer sur une cellule d'une JTable
    Bonjour/Bonsoir

    J'ai envie d'appliquer un renderer sur une cellule de ma JTable, pour cela j'ai créé le renderer comme suit:

    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
     
     
    import java.awt.Component;
     
    import javax.swing.ImageIcon;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableCellRenderer;
     
    public class MyRenderer extends DefaultTableCellRenderer {
     
      public Component getTableCellRendererComponent(JTable table, ImageIcon icon) {
     
        setIcon(icon);
        return this;
      }
    }
    Et j'utilise le bout de code suivant pour l'appliquer à ma cellule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    MyRenderer renderer = new MyRenderer();
     
    renderer.getTableCellRendererComponent(table, icon);
     
    table.getColumnModel().getColumn(6).setCellRenderer(renderer);
    Mais comme ça, mon renderer est appliqué sur toutes les cellules de la colonne 6, et moi je veux qu'il soit appliqué sur une cellule spécifique (ligne/colonne) mais je ne sais pas comment faire.

    Merci d'avance pour vos réponses.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Tu t'y prends mal :
    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
    public class MyRenderer extends DefaultTableCellRenderer {
     
      private final Icon icon;
     
      public MyRenderer(Icon icon) {
         super();
         this.icon= icon;
      }
     
      @Override
      public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        setIcon((row == <numero de ligne ici>)  ? icon : null);
        // Ou
        //setIcon((value <test sur la valeur ici>)  ? icon : null);
        return this;
      }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MyRenderer renderer = new MyRenderer(icon);
    table.getColumnModel().getColumn(6).setCellRenderer(renderer);
    Le rendereur d'une colonne est toujours appliqué sur toutes les lignes de cette colonne, la méthode getTableCellRendererComponent() permet justement de configurer l'apparence pour une ligne/une valeur donnée.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  3. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01
  4. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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