以前我回答过这类问题,你搜一下吧
解决方案 »
- java 编译报错 “ 需要']' ”?
- 如何读取JAVA中得注释内容
- 请如何使用socket向服务端发送字段字符串!
- 怎样将字符串"2006-06-02-11.12.59.407756"这种格式转换为yyyy-MM-dd hh:MM:SS类型的日期格式?
- 请教Java基本类库中ResourceBundle的getBundleImpl(String baseName, Locale locale,ClassLoader loader)的实现
- 开放源代码后,对我们程序员到底有什么影响?
- 一个和数据库和java有关的问题
- 哪里能下载JDK1.3 Dicuments?
- 怎样用JAVA程序把一个linux文件改变为其它用户的?
- 求解,小白问个问题,在这个例子里super和this为什么是同一个类了
- SWING 问题,对于TABLE 行来说,如何能让里面装的checkbox 正确响应
- tomcat从service中启动,无法访问网络路径。
import javax.swing.tree.TreeCellRenderer;
import javax.swing.plaf.ColorUIResource;
import javax.swing.plaf.FontUIResource;
import java.awt.*;
import java.io.File;
import javax.swing.*;
import javax.swing.tree.DefaultTreeCellRenderer;public class MyTreeCellRenderer
extends JPanel
implements TreeCellRenderer { /** 用于显示节点文字。*/
private DefaultTreeCellRenderer defaultTreeCellRenderer; /** 用于显示自定义图标。*/
private JLabel m_ShowStatusLabel; /** 统一图标来源的路径用。*/
private MyIconFile m_File; /**用于显示节点前的图片。*/
private Icon m_StatusIcon; /**构造器。*/
public MyTreeCellRenderer() {
this.m_File = new MyIconFile();
this.m_ShowStatusLabel = new JLabel(); this.m_StatusIcon = m_File.getAllSelIcon();
this.m_ShowStatusLabel.setIcon(this.m_StatusIcon);
this.add(this.m_ShowStatusLabel, null); this.defaultTreeCellRenderer = new DefaultTreeCellRenderer();
this.add(this.defaultTreeCellRenderer, null);
}/**调default的,显示文字*/
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel,
boolean expanded,
boolean leaf, int row,
boolean hasFocus) {
this.defaultTreeCellRenderer.getTreeCellRendererComponent(tree, value, sel,
expanded, leaf, row, hasFocus); setComponentOrientation(tree.getComponentOrientation());
return this;
}/** 在super.paint(g)前自己加状态判断,然后调m_showSatusLabel.setIcon(icon)*/
public void paint(Graphics g) {
int labelWidth = this.defaultTreeCellRenderer.getWidth();
int labelHeight = this.defaultTreeCellRenderer.getHeight();
this.defaultTreeCellRenderer.setBounds(new Rectangle(16, 0, labelWidth,
labelHeight));
this.m_ShowStatusLabel.setBounds(new Rectangle(0, 0, 16, 16)); super.paint(g);
}
}
/***************************************************************/
class MyIconFile {
private static String dirPath;
private static String allSelIconFileName = "AllSel.gif";
private static String someSelIconFileName = "SomeSel.gif";
private static String noneSelIconFileName = "NoneSel.gif"; static {
dirPath = new File("").getAbsolutePath() + "/";
while (dirPath.indexOf(File.separator) != -1) {
int index = dirPath.indexOf(File.separator);
dirPath = dirPath.substring(0, index) + "/" +
dirPath.substring(index + 1, dirPath.length());
}
} public static Icon getAllSelIcon() {
return new ImageIcon(dirPath + allSelIconFileName);
}
}