Module java.desktop
Package javax.swing.tree

Interface TreeCellRenderer

所有已知的实现类:
DefaultTreeCellRenderer

public interface TreeCellRenderer
定义了显示树节点的对象的要求。请参阅Java教程中的如何使用树,了解实现显示自定义图标的树单元格渲染器的示例。
  • Method Summary

    Modifier and Type
    Method
    Description
    getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)
    将当前树单元格的值设置为value
  • Method Details

    • getTreeCellRendererComponent

      Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)
      将当前树单元格的值设置为value。如果selected为true,则将绘制该单元格,就像被选中一样。如果expanded为true,则表示节点当前已展开,如果leaf为true,则表示节点代表叶子节点,如果hasFocus为true,则表示节点当前具有焦点。tree是为其配置接收器的JTree。返回渲染器用于绘制值的Component

      TreeCellRenderer还负责渲染表示树当前DnD放置位置的单元格。如果此渲染器关心渲染DnD放置位置,则应直接查询树以查看给定行是否表示放置位置:

           JTree.DropLocation dropLocation = tree.getDropLocation();
           if (dropLocation != null
                   && dropLocation.getChildIndex() == -1
                   && tree.getRowForPath(dropLocation.getPath()) == row) {
      
               // 此行表示当前放置位置
               // 因此特殊渲染,也许使用不同的颜色
           }
       
      参数:
      tree - 为其配置接收器
      value - 要渲染的值
      selected - 节点是否被选中
      expanded - 节点是否已展开
      leaf - 节点是否为叶子节点
      row - 行索引
      hasFocus - 节点是否具有焦点
      返回:
      渲染器用于绘制值的Component