MyCustomCellRendererer.java
上传用户:hltofo
上传日期:2021-08-24
资源大小:21k
文件大小:1k
源码类别:

TreeView控件

开发平台:

Java

  1. /*
  2.  * $Id: MyCustomCellRendererer.java,v 1.1 2006/05/05 18:42:47 aviva Exp $
  3.  * Read the "license.txt" file for licensing information.
  4.  * (C) Antonio Vieiro. All rights reserved.
  5.  */
  6. package net.antonioshome.swing.treewrapper.example;
  7. import java.awt.Component;
  8. import javax.swing.ImageIcon;
  9. import javax.swing.JTree;
  10. import javax.swing.tree.DefaultTreeCellRenderer;
  11. /**
  12.  * MyCustomCellRendererer is a cell renderer that shows some (ugly, sorry) icons
  13.  * @author Antonio Vieiro (antonio@antonioshome.net), $Author: aviva $
  14.  * @version $Revision: 1.1 $
  15.  */
  16. class MyCustomCellRendererer
  17.   extends DefaultTreeCellRenderer
  18. {
  19.   ImageIcon orangeIcon;
  20.   ImageIcon appleIcon;
  21.   
  22.   public MyCustomCellRendererer()
  23.   {
  24.     orangeIcon = new ImageIcon( getClass().getResource("orange.png") );
  25.     appleIcon = new ImageIcon( getClass().getResource("apple.png") );
  26.   }
  27.   //配置基于传入组件的渲染器。使用 convertValueToText 向树传递消息,从而设置该值,最终对 value 调用 toString。基于选择设置前景色,基于叶和扩展性设置图标。
  28.   public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus)
  29.   {
  30.     super.getTreeCellRendererComponent( tree, value, sel,
  31.       expanded, leaf, row, hasFocus );
  32.     
  33.     if ( value.toString().startsWith( "orange") )
  34.       setIcon( orangeIcon );
  35.     else if ( value.toString().startsWith("apple") )
  36.       setIcon( appleIcon );
  37.     else
  38.       setIcon( null );
  39.     
  40.     return this;
  41.   }
  42.   
  43.   
  44. }