2009-11-09 5 views

Répondre

1
  1. créer un ImageIcon de votre image

    icône ImageIcon = ....; (there are a number of ways to do this)

  2. créer une instance de DefaultTreeCellRenderer

    DefaultTreeCellRenderer rendu = new DefaultTreeCellRenderer();

  3. définir le champ de l'icône de la feuille du rendu

    renderer.setLeafIcon (icône);

  4. mis le moteur de rendu

    de l'arbre tree.setCellRenderer (équarrissage);

if you can't figure it out try the demo

+0

à ajouter à la réponse ci-dessus: Si vous cherchez à définir une image sur le côté droit du texte (essentiellement, pas d'icône), vous avez encore besoin de créer votre propre instance de DefaultTreeCellRenderer pour retourner un composant qui comprend l'image – Thimmayya

0

Vous pouvez utiliser un moteur de rendu de feuille personnalisé. Substituez la méthode getTreeCEllRendererComponent().

Lorsque vous restituez un composant.

Utilisez un panneau et placez le texte en premier et l'icône en regard du texte.

Puis retournez le composant.

public Component getTreeCellRendererComponent(JTree tree, Object value, 
     boolean selected, boolean expanded, boolean leaf, int row, 
     boolean hasFocus) { 


    JLabel l = (JLabel)renderer.getTreeCellRendererComponent(
      tree, "", true, expanded, leaf, row, true); 
    Component com = renderer.getTreeCellRendererComponent(
      tree, "", true, expanded, leaf, row, true); 
    l.setIcon(YOUR_IMAGE); 
    l.setText(value.toString()); 



     panel.removeAll(); 
     panel.add(this, BorderLayout.EAST); 
     panel.add(j); 
     return panel; 



} 
Questions connexes