MyDefaultTreeCellRenderer.java
import java.awt.Component;
import javax.swing.ImageIcon;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
/**
* 自定义树描述类,将树的每个节点设置成不同的图标
* @author RuiLin.Xie - xKF24276
*
*/
public class MyDefaultTreeCellRenderer extends DefaultTreeCellRenderer
{
/**
* ID
*/
private static final long serialVersionUID = 1L;
/**
* 重写父类DefaultTreeCellRenderer的方法
*/
@Override
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);
setText(value.toString());
if (sel)
{
setForeground(getTextSelectionColor());
}
else
{
setForeground(getTextNonSelectionColor());
}
//得到每个节点的TreeNode
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
//得到每个节点的text
String str = node.toString();
//判断是哪个文本的节点设置对应的值(这里如果节点传入的是一个实体,则可以根据实体里面的一个类型属性来显示对应的图标)
if (str == "a")
{
this.setIcon(new ImageIcon("treeimg/a.GIF"));
}
if (str == "b")
{
this.setIcon(new ImageIcon("treeimg/b.GIF"));
}
if (str == "c")
{
this.setIcon(new ImageIcon("treeimg/c.GIF"));
}
return this;
}
}
TreeIconDemo.java
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
public class TreeIconDemo extends JFrame
{
/**
* ID
*/
private static final long serialVersionUID = 1L;
private JTree tree;
/**
* Launch the application
*
* @param args
*/
public static void main(String args[])
{
try
{
TreeIconDemo frame = new TreeIconDemo();
frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* Create the frame
*/
public TreeIconDemo()
{
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane, BorderLayout.CENTER);
tree = new JTree();
scrollPane.setViewportView(tree);
//创建数据
DefaultTreeModel defaultTreeModel = createModel();
//设置数据
tree.setModel(defaultTreeModel);
//设置自定义描述类
tree.setCellRenderer(new MyDefaultTreeCellRenderer());
}
/**
* 创建树节点模型
* @return
*/
public DefaultTreeModel createModel()
{
DefaultMutableTreeNode root = new DefaultMutableTreeNode("a");
DefaultMutableTreeNode b = new DefaultMutableTreeNode("b");
DefaultMutableTreeNode c = new DefaultMutableTreeNode("c");
root.add(b);
root.add(c);
return new DefaultTreeModel(root);
}
}
分享到:
相关推荐
JTree的例子,可以拖动节点 JTree的例子,可以拖动节点
JTree设置QQ好友树形列表中不同好友的图像,采用swing组件
jtree目录树,学习目录树的同学可以参考参考,js实现的,可以动态的无限添加目录树节点,非常方便
jtree节点可编辑
// 设置叶子节点不采用图标 treeCellRenderer.setClosedIcon(null);// 设置节点折叠时不采用图标 treeCellRenderer.setOpenIcon(null);// 设置节点展开时不采用图标 Enumeration<?> enumeration; // 按...
JTree 树形菜单插件包下载,在网页上快速实现树控菜单的一个小插件,功能相对完善,本次更新功能:加入treeNodes(数组形式),通过treeNodes可以对指定的子树进行收缩和展开功能,查找指定节点的功能。加入这个功能...
NULL 博文链接:https://zengxx1989.iteye.com/blog/482883
jtree添加图片--(不同的节点图片),源代码,欢迎学习。
JTree2.0 目录树 js目录树JTree2.0 目录树 js目录树JTree2.0 目录树 js目录树
JTree(节点带有checkbox)代码实例
jtree树形组件
jtree和QQ项目 树上闪动的节点动态化(根据QQ号来消息闪动)
一个很不错的TREE 并有些实例,里面有JTree,还有一些JTree_Simple
JTree上的每一个节点就代表一个TreeNode对象,TreeNode本身是一个Interface,里面定义了7个有关节点的方法,例如判断是否 为树叶节点、有几个子节点(getChildCount())、父节点为何(getparent())等等、这些方法的定义...
JTree的使用 JTree的使用 JTree的使用
实现jTable和jTree的双向联动,点击jTree会选中jTable单元格,点击jTable会选中jTree节点。
jtree树案例,jtree中树的比较经典案例,很好。
HTML转成Jtree
JTree(节点带有checkbox)代码实例