`
daxiaoli123
  • 浏览: 46726 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

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;

}

}
分享到:
评论

相关推荐

    JTree设置不同图标

    例如,在已经添加的节点中不能更改其文本信息和图片信息,而且所有的叶子节点的图片都是通过 DefaultTreeCellRenderer 的方法 setLeafIcon() 来实现的,这点在实际的软件开发中是一个致命的漏洞。 为了解决这个问题...

    JTree组件资料

    - **图标支持**: 每个节点可以关联一个图标,表示其状态,如打开、关闭、叶子节点等。 - **键盘导航**: 用户可以通过键盘进行导航和操作,如使用`Space`键展开/折叠节点,`Arrow`键移动焦点。 ### 3. JTree的使用...

    详细介绍JTree控件的教程以及源码

    // 自定义叶子节点的图标 setIcon(leafIcon); } else if (expanded) { // 自定义展开节点的图标 setIcon(openIcon); } else { // 自定义未展开节点的图标 setIcon(closeIcon); } return c; } }); ``` ...

    JTree原生样式设置Demo.rar

    // 设置叶子节点不采用图标 treeCellRenderer.setClosedIcon(null);// 设置节点折叠时不采用图标 treeCellRenderer.setOpenIcon(null);// 设置节点展开时不采用图标 Enumeration<?> enumeration; // 按...

    JTree的Doc文档

    6. **Icons**:可以通过设置图标来美化`JTree`,例如,可以为展开的节点、未展开的节点、叶子节点设置不同的图标。 7. **Rendering**:`JTree`使用`TreeCellRenderer`来决定如何显示每个节点,包括文本颜色、字体、...

    非常好用的Jtree目录树

    leafIcon: 'fa fa-file' // 叶子节点图标 } }); ``` - **操作JTree**:通过提供的API进行节点的操作,例如添加、删除、更新节点。 ```javascript // 添加节点 tree.addNode({ text: '新节点', parent: '节点1' }...

    java中JTree的简单应用

    - `isExpanded(int row)` 和 `isLeaf(int row)` 分别检查节点是否展开和是否为叶子节点。 6. **数据绑定**: - JTree可以与JavaBeans或其他数据源绑定,通过`Binding`机制实现数据的动态更新。 7. **性能优化**...

    JavaSwing中的JTree模型.pdf

    Java Swing 中的 JTree 是一个用于展示层次结构数据的组件,它使用类似文件系统目录的图形界面,由一系列节点组成,这些节点可以是文件夹或叶子节点。文件夹节点可以有子节点,而叶子节点没有。JTree 依赖于一个模型...

    java中JTree高级编程

    TreeNode类可以代表一个叶子节点(没有子节点)或一个分支节点(有子节点)。你可以根据需要创建自定义的TreeModel来适应特定的数据结构。 其次,**事件处理**是JTree交互性的关键。JTree提供了多种事件监听器,如...

    Java漂亮的树形菜单制作实例(源码).rar

    //设置叶子节点图标为空  renderer.setClosedIcon(null); //设置关闭节点的图标为空  renderer.setOpenIcon(null); //设置打开节点的图标为空  tree.addTreeSelectionListener(new TreeSelectionListener() {//...

    Java在窗口中添加树形菜单TreeView.rar

    //设置叶子节点图标为空   renderer.setClosedIcon(null); //设置关闭节点的图标为空   renderer.setOpenIcon(null); //设置打开节点的图标为空     tree.addTreeSelectionListener(new ...

    swing实现树形结构示例2枚

    此外,DefaultMutableTreeNode还提供了isLeaf()方法来判断节点是否为叶子节点。 3. **TreeModel接口**: TreeModel是树数据模型的接口,定义了树结构如何被访问和修改。Swing中的JTree组件使用这个接口来获取和...

    javaJTree实例[参照].pdf

    禁用节点可以是叶子节点(无子节点)或非叶子节点(有子节点)。 8. **仅文本节点**: `OnlyTextTreeExample.java`则专注于仅显示文本的节点,没有图标或其他视觉装饰,简化了界面,使其更加专注和清晰。 9. **...

    树菜单

    4. **图标**:JTree可以为不同状态的节点设置不同的图标,比如展开、折叠、叶子节点等,通过设置CellRenderer来定制节点的外观。 5. **事件处理**:当用户与JTree交互时,会触发相应的事件,如TreeSelectionEvent。...

    JAVA目录树实例重要.pdf

    实例中,通过设置不同的图标来区分展开、折叠和叶子节点,同时可以设置背景颜色和选中颜色。 6. **事件监听**: 实例中使用了`ActionListener`来处理按钮点击事件。`addSiblingButton`、`addChildButton`和`delete...

    Java Tree 导航栏

    - `setLeafIcon(ImageIcon icon)`:设置叶子节点的图标。 - `setTextSelectionColor(Color color)`:设置选中时文本的颜色。 - `setFont(Font font)`:设置字体。 6. **TreeSelectionListener:** - **用途**:...

    漂亮的树形菜单

    每个节点代表一个项目,可以包含子节点或叶子节点(没有子节点的项)。用户可以通过点击加号(+)或减号(-)图标来展开或折叠节点,从而查看或隐藏子级内容。这种交互方式使用户能够快速浏览和访问大量信息,尤其...

    常用树形控件

    树形控件(Tree Control)是一种控件元素,它以层级结构显示数据,每个层级称为一个节点,节点可以包含子节点或叶子节点。通常,根节点位于顶部,而叶子节点没有子节点。用户可以通过展开和折叠节点来查看或隐藏子...

Global site tag (gtag.js) - Google Analytics