vendredi 23 avril 2010

Java - JTree avec des icones spécifiques

J'ai voulu faire un JTree affichant des icones spécifiques à chaque noeud.
Dans mon cas, l'objet du noeud est capable de fournir sa propre icone, ce qui simplifie le code. Du coup la solution est simple : il suffit de faire un Renderer héritant de DefaultTreeCellRenderer et de redéfinir la méthode getTreeCellRendererComponent.

Ce qui donne :
  @Override
  public Component getTreeCellRendererComponent(JTree tree,
            Object value,
            boolean sel,
            boolean expanded,
            boolean leaf, int row,
            boolean hasFocus) {
    Component component = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
    if (Filiale.class.isInstance(value)) {
      setIcon(((Filiale) value).getIcon());
    }
    return component;
  }

Pour plus d'info : http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html#display

Aucun commentaire :

Enregistrer un commentaire