JTree叶子节点添加图标

package com.wsy.JComPz;
import java.awt.Component;
import java.util.Calendar;
import javax.swing.Icon;
import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JTree;

import javax.swing.tree.DefaultTreeCellRenderer;


public class LeafIconTest {

private JFrame jf = null;
/**

* @param args

*/

public static void main(String[] args) {

LeafIconTest lit = new LeafIconTest();

lit.test();

}
private void test() {

jf.show();

}
public LeafIconTest() {
super();
jf = new JFrame("Leaf Icon Test");
jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
jf.setSize(200, 300);
jf.getContentPane().add(getJTree());
}
private Component getJTree() {

JTree jt = new JTree();

jt.setCellRenderer(new DefaultTreeCellRenderer() {

public Component getTreeCellRendererComponent(JTree tree,

Object value, boolean sel, boolean expanded, boolean leaf,

int row, boolean hasFocus) {

System.out.println("[DEBUG] "

+ Calendar.getInstance().getTime().toGMTString()

+ " getLeafIcon invoked");

super.getTreeCellRendererComponent(tree, value, sel, expanded,

leaf, row, hasFocus);

if (leaf) {

setIcon(getLengthIcon(value));

}

return this;

}

});

return jt;

}
protected Icon getLengthIcon(Object value) {

ImageIcon ii;

// We use the length of the string representation of the node to

// determine the icon.

// In real world, we need to determine this by the

// 'male | female' attribute of the tree node, which can be extracted

// from the parameter 'value'

int length = value.toString().length();

if (length == 5 || length == 3) {

ii = new ImageIcon("e:/model.png");

} else {
ii = new ImageIcon("e:/model.png");

}

System.out.println(value.toString());

return ii;

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值