FarookFreeman | Voilà, j'ai fait une classe JPanel pour implémenter l'interface TreeCellRenderer.
Je vous montre le code :
Code :
- class MyRenderer extends JPanel implements TreeCellRenderer {
- JLabel name=new JLabel("name" );
- JCheckBox withContent=new JCheckBox("Content" );
- JCheckBox withTags=new JCheckBox("Tags" );
- GridLayout layout=new GridLayout(1,3);
- public MyRenderer() {
- layout.setHgap(5);
- setLayout(layout);
- add(name);
- add(withContent);
- add(withTags);
- withContent.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent ae) {
- System.out.println("action performed mon gars" );
- }
- });
- }
- public Component getTreeCellRendererComponent(JTree itsTree,Object value,boolean selected,boolean expanded,boolean leaf,int row,boolean hasfocus) {
- // super.getTreeCellRendererComponent(itsTree,value,selected,expanded,leaf,row,hasfocus);
- setPreferredSize(new Dimension(250,20));
- setBackground(Color.red);
- return this;
- }
- }
|
Voici ce que ça donne :
[img]filehome/CLERMONT/arbre.bmp[/img]
Le problème, c'est que l'action Listener sur le checkBox ne marche pas, vu que les événements doivent être géré plus haut dans le JTree (qui appelle getTreeCellRendererComponent dans le cas de modification d'une cellule).
Si vous saviez comment je pourrais faire, pour récupérer des clicks sur mes checkBox et les affecter au modèle du JTree, je serais un homme très heureux ...
|