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 :

Ajout composant dans cellules


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut Ajout composant dans cellules
    Bonjour,

    Je souhaiterais modifier la 1er colonne d'une JTable pour que celle-ci affiche 2 objets : un objet personnel héritant de JPanel permettant d'afficher un petit carré coloré et une Chaine de caractéres.

    Ces deux objets sont déduit via un 3em, connu, de type Layer. C'est donc ce dernier que je vais utiliser pour mon DefaultTableCellRenderer.

    Aprés de nombreuses recherches sur le internet, voilà ce que j'ai réussi à faire.

    Création de l'objet JTablePerso dans le code principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    String[] titreColonnesCoucheSupplementaire = new String[]{"Nom de la couche"};
    this.jTableCouchesSupplementaires = new JTablePerso(titreColonnesCoucheSupplementaire); 
    for (int i=0;i<nbrCouche;i++){
       nomCouche = this.layerManager.getLayer(i).toString().trim(); //On récupére le nom de la couche, qui correspond à la seconde information que je souhaiterais afficher.
       if ((!(nomCouche.equals("Ilots"))) &&(!(nomCouche.equals("Parcelles")))){
          jTableCouchesSupplementaires.setValueAt(this.layerManager.getLayer(i), numLigne, 0); //J'affecte à la premiere colonne la couche (layer) qui va me permettre de récupérer les 2 informations voulues.
          numLigne = numLigne + 1;
          this.vectorCouchesSupplementaires.add(this.layerManager.getLayer(i));
       }
    }
    jTableCouchesSupplementaires.setDefaultRenderer(Object.class,new TableRendererPerso()); //Je choisi mon DefaultTableCellRenderer.

    Mon DefaultTableCellRenderer
    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
    20
    21
    22
    23
    24
    25
    26
     
    class TableRendererPerso extends DefaultTableCellRenderer {
       public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column){ 
       Layer couche = (Layer)value; //Je récupére la couche qui va me permettre de récupérer les 2 informations
       JPanel panelCouche = new JPanel();//JPanel qui va accueillir le petit carré coloré (1er info)
       JPanel panelNomCouche = new JPanel();//JPanel qui va accueillir le label du nom de la couche (2nd info)
       JLabel labelNomCouche = new JLabel();//JLabel qui va recevoir le nom de la couche et qui va être affiché dans panelNomCouche.
       JPanel panelPrincipal = new JPanel();//JPanel qui va recevoir les 2 précédents panels.
     
      //Je récupére le petit carré (1ere info grâce à la couche) 
      LayerPreviewStylePanel previewPanel = new LayerPreviewStylePanel();
      previewPanel.init(couche);
      previewPanel.setVisible(true);	
      //Et j'ajoute l'info et son panel dans le panel principal.
      panelCouche.add(previewPanel);
      panelPrincipal.add(panelCouche);
     
       //Je récupére le nopm de la couche (2em info)		
       labelNomCouche.setText(((Layer)value).toString());
       //Et j'ajoute l'info et son panel dans le panel principal.
       panelNomCouche.add(labelNomCouche);
       panelPrincipal.add(panelNomCouche);
     
       //Enfin, je retourne le panelPrincipal
       return panelPrincipal;
    }
    Le problème et que le panel s'est je pense pas le bon componant à utiliser : en effet cela n'affiche plus qu'un seul bloc dans le tableau, et l'affichage n'est pas parfait (coupé à la moitié de la hauteur).

    Je vous sollicite donc afin de pouvoir réussir à afficher des cellules normales contenant à la fois le petit carré coloré et le nom de la couche.


    Merci beaucoup.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    Up car édition du problème

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

Discussions similaires

  1. [XL-2010] Ajouter image dans cellule avec x copie
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/11/2012, 19h24
  2. Ajout DateTimePicker dans cellule DataGridView
    Par Nanais19 dans le forum C#
    Réponses: 1
    Dernier message: 01/12/2011, 10h56
  3. Pb pour ajouter composant dans la boite à outils
    Par batteuryo dans le forum Windows Forms
    Réponses: 8
    Dernier message: 20/06/2008, 20h14
  4. Ajout composant dans la palette
    Par schneidb dans le forum NetBeans
    Réponses: 3
    Dernier message: 18/04/2007, 10h57
  5. ajout texte dans cellule
    Par david06600 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/02/2007, 16h35

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