Assoziation eines Bildes mit einem Java -Baumknoten -Objekt
Frage
Ich habe einen Baumknoten. Ich möchte, dass ein Bild neben dem Knotennamen angezeigt wird, wenn der Baum angezeigt wird. Wie gehe ich vor?
Lösung
Erstellen Sie ein Imageicon aus Ihrem Bild
ImageCon -Icon = ....; (Es gibt eine Reihe von Möglichkeiten, dies zu tun)
Erstellen Sie eine Instanz von DefaultTreeCellRendererer
DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer ();
Stellen Sie das Blatt -Symbolfeld des Renderers ein
Renderer.setLeaficon (Icon);
Stellen Sie den Renderer des Baumes ein
Tree.SetCellRenderer (Renderer);
Wenn Sie es nicht herausfinden können, versuchen Sie es mit der Demo
Andere Tipps
Sie können einen benutzerdefinierten Blattrenderer verwenden. Überschreiben Sie die Methode von GetTreeCellRendererComponent ().
Wenn Sie eine Komponente rendern.
Verwenden Sie ein Panel und geben Sie den Text und das Symbol für den Text an.
Und geben Sie dann die Komponente zurück.
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;
}