extends JLabel implements TreeCellRenderer : JTree Editor Renderer « Swing « Java Tutorial

extends JLabel implements TreeCellRenderer
import java.awt.BorderLayout;
import java.awt.Component;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeCellRenderer;
import javax.swing.tree.TreeModel;

public class TreeCellRendererImplementation extends JFrame {

  public TreeCellRendererImplementation() {

    DefaultMutableTreeNode root = new DefaultMutableTreeNode("+");
    root.add(new DefaultMutableTreeNode(new Integer(3)));
    DefaultMutableTreeNode node = new DefaultMutableTreeNode("*");
    node.add(new DefaultMutableTreeNode("string"));
    node.add(new DefaultMutableTreeNode(new Short((short) 5)));

    TreeModel tm = new DefaultTreeModel(root);
    JTree tree = new JTree(tm);
    tree.setCellRenderer(new MyRenderer());
    getContentPane().add(tree, BorderLayout.CENTER);
    setSize(400, 300);

  private class MyRenderer extends JLabel implements TreeCellRenderer {
    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean isSelected,
        boolean isExpanded, boolean isLeaf, int row, boolean hasFocus) {
      Object userObject = ((DefaultMutableTreeNode) value).getUserObject();
      setText(value.toString() + " [" + userObject.getClass().getName() + "]");
      return this;

  public static void main(String[] args) {
    TreeCellRendererImplementation m = new TreeCellRendererImplementation();

14.69.JTree Editor Renderer
14.69.1.Getting Default TreeCellRenderer From JTreeGetting Default TreeCellRenderer From JTree
14.69.2.extends JLabel implements TreeCellRendererextends JLabel implements TreeCellRenderer
14.69.3.Creating a Custom RendererCreating a Custom Renderer
14.69.4.Working with Tree Tooltips: using a Tooltip Cell RendererWorking with Tree Tooltips: using a Tooltip Cell Renderer
14.69.5.Editing Tree Nodes with triple clickingEditing Tree Nodes with triple clicking
14.69.6.Creating a DefaultCellEditor: JTextFieldCreating a DefaultCellEditor: JTextField
14.69.7.Creating a DefaultCellEditor: JComboBoxCreating a DefaultCellEditor: JComboBox
14.69.8.Creating a DefaultCellEditor: JCheckBoxCreating a DefaultCellEditor: JCheckBox
14.69.9.Creating a Proper ComboBox Editor for a TreeCreating a Proper ComboBox Editor for a Tree
14.69.10.Creating an Editor Just for Leaf NodesCreating an Editor Just for Leaf Nodes
14.69.11.Rendering an image in a JTable column
14.69.12.Setting the Activation Click Count for a Table Cell Editor in a JTable Component
14.69.13.Using DefaultTreeCellRenderer
14.69.14.Changing and Removing the Default Icons in a JTree Component
14.69.15.Use UIManager to change the default icon for JTree
14.69.16.Flush the internal cache of Row height