Afficher Image dans un JXTreeTable

Résolu
cs_dibelup Messages postés 6 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 24 mars 2011 - 28 avril 2009 à 10:33
cs_dibelup Messages postés 6 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 24 mars 2011 - 29 avril 2009 à 09:07
Salut à tous!
J'ai un JXtreeTable (pour ceux qui connaissent pas c'est un Jtree  à plusieurs colonnes) et je souhaiterais afficher une image dans la dernière colonne.
J'ai pour cela dans ma classe qui extends DefaultTreeTableModel une méthode public Object getValueAt(Object node, int column).
Pour un text pas de probleme mais pour une image, un JLabel ...ça me renvoi une espece de référence...

Je bloque Auriez vous une idée?
merciu d'avance

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
28 avril 2009 à 10:38
Salut,

Ce n'est pas le tableModel qu'il doit falloir redéfinir. Lui il se contente juste de contenir les données, pas la façon de les représenter !

Essaye de voir si tu as un renderer et un editor pour ton JXTreeTable : ce sont eux qu'il faut surcharger ! (voir ma source de propertytable par exemple).
3
cs_dibelup Messages postés 6 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 24 mars 2011
28 avril 2009 à 10:42
bonjour,merci pour ta reponse!
J'ai en effet un renderer qui extends DefaultTreeCellRenderer mais je n'ai accès qu'à la premiere colonne.
Vu le nom de la classe, il  considere ça comme un Jtree simple et non plus comme un JTree à plusieurs colonnes.

http://www.inf.furb.br/~piva/downloads/compilador/Compilador/Compilador/bibliotecas%20extras/swinglabs-0.8.0-bin/swinglabs/docs/api/org/jdesktop/swingx/JXTreeTable.html

C'est pour ça je sèche un peu...
3
cs_dibelup Messages postés 6 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 24 mars 2011
29 avril 2009 à 09:07
Bonjour, merci pour vos reponses
En effet j'ai utilisé un tablecellerenderer
voici le code si ça peut aider
a bientot

Ma classe qui hérite de tablecellrenderer:
     public class MesBoutons extends JButton implements TableCellRenderer {
          /**
         * 
         */
        private static final long serialVersionUID = 1L;

        public MesBoutons(String strs) {
          super(strs);
        }

        public Component getTableCellRendererComponent(JTable table,
            Object value, boolean isSelected, boolean hasFocus, int row,
            int column) 
        {
            JPanel    jContentPane = new JPanel();
            //System.out.println(value.toString());
          if(value.toString().equals("Operation1") || value.toString().equals("Operation2")|| value.toString().equals("Operation2")|| value.toString().equals("Operation3")|| value.toString().equals("Operation4")|| value.toString().equals("Operation5"))
          {
          
                GridLayout gridLayout = new GridLayout();
                gridLayout.setRows(1);
                jContentPane = new JPanel();
                jContentPane.setLayout(gridLayout);
                jContentPane.add(new JButton(new ImageIcon("plus.gif")), null);
                jContentPane.add(new JButton(new ImageIcon("minus.gif")), null);
          }    
          else
          {
              jContentPane.add(new JLabel(""));
              jContentPane.setBackground(Color.white);
          }
          return jContentPane;
        }
}


une methode que j'ai mis dans ma classe qui hérite de JXTreeTable

public void ajouterBoutons()
    {
        this.getColumn(3).setCellRenderer(new MesBoutons(""));
    }


Et enfin un appel tout simple sur ma table
treeTable.ajouterBoutons();
0
Rejoignez-nous