package common.tree;import java.awt.Component;
import javax.swing.Icon;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.plaf.metal.MetalIconFactory;/**
* 树图标
*/
public class IconNodeRenderer extends DefaultTreeCellRenderer { /** 有叶子节点的图标 */
public static final Icon FOLDER_ICON=common.Transfer.getAppIcon("resource/folder.gif"); /** 叶子节点的图标*/
public static final Icon LEAF_ICON=common.Transfer.getAppIcon("resource/leaf.gif"); /** 节点打开时的图标*/
public static final Icon EXPANDED_ICON=common.Transfer.getAppIcon("resource/expanded.gif"); public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded, boolean leaf,
int row, boolean hasFocus) { super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); TreeNode node=(TreeNode)value; //判断节点是否已设置图标
Icon icon = node.getIcon(); if (icon == null) {
if(expanded)
setIcon(EXPANDED_ICON);
else if(!leaf)
setIcon(FOLDER_ICON);
else
setIcon(LEAF_ICON);
} else {
setIcon(icon);
} return this;
}}
import javax.swing.Icon;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.plaf.metal.MetalIconFactory;/**
* 树图标
*/
public class IconNodeRenderer extends DefaultTreeCellRenderer { /** 有叶子节点的图标 */
public static final Icon FOLDER_ICON=common.Transfer.getAppIcon("resource/folder.gif"); /** 叶子节点的图标*/
public static final Icon LEAF_ICON=common.Transfer.getAppIcon("resource/leaf.gif"); /** 节点打开时的图标*/
public static final Icon EXPANDED_ICON=common.Transfer.getAppIcon("resource/expanded.gif"); public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded, boolean leaf,
int row, boolean hasFocus) { super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); TreeNode node=(TreeNode)value; //判断节点是否已设置图标
Icon icon = node.getIcon(); if (icon == null) {
if(expanded)
setIcon(EXPANDED_ICON);
else if(!leaf)
setIcon(FOLDER_ICON);
else
setIcon(LEAF_ICON);
} else {
setIcon(icon);
} return this;
}}
解决方案 »
- 如何编译相互引用对方class的java文件?
- Java核心技术书中关于Manger和staff例子中多态的问题
- 请教:为什么不能弹出窗口
- 小弟我刚学Java,简单问题......
- 这个东西哪里有呀,帮帮我
- 关于Panel的一个问题!!!
- 初学者的关于dispatchEvent的问题
- >>>>>>>>>>>>>>>急:高分求struts操作数据库表的例子
- @@@@@@@@高分求解超低级问题###################
- java怎么样读取byte[]数据里面的值
- 三天了,,三天没睡了,就因为这个程序,请各位帮帮忙看看!!!!!!
- 菜菜的问题:我用java做的程序,应该以什么形式发布给用户
import javax.swing.Icon;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.plaf.metal.MetalIconFactory;
import common.render.TreeNode;/**
* 树图标
*/
public class IconNodeRenderer
extends DefaultTreeCellRenderer
{ /** 有叶子节点的图标 */
public static final Icon FOLDER_ICON = common.Transfer.getAppIcon("resource/folder.gif"); /** 叶子节点的图标*/
public static final Icon LEAF_ICON = common.Transfer.getAppIcon("resource/leaf.gif"); /** 节点打开时的图标*/
public static final Icon EXPANDED_ICON = common.Transfer.getAppIcon("resource/expanded.gif"); public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded, boolean leaf,
int row, boolean hasFocus)
{ super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); TreeNode node = (TreeNode)value; //判断节点是否已设置图标
Icon icon = node.getIcon(); if (icon == null)
{
if (expanded)
{
setIcon(EXPANDED_ICON);
this.setPreferredSize(new java.awt.Dimension(100, 10));
}
else if (!leaf)
{
setIcon(FOLDER_ICON);
this.setPreferredSize(new java.awt.Dimension(100, 30));
}
else
{
this.setPreferredSize(new java.awt.Dimension(100, 50));
setIcon(LEAF_ICON);
}
}
else
{
setIcon(icon);
} return this;
}}
this.setPreferredSize(new java.awt.Dimension(100, 10));
这里
回去再试试,马上给分