如何为jtree的不同结点加不同的图标

amekoxiao 2004-12-16 04:50:55
我已经实现了相同级别的结点加不同的图标
现在求如何为所有的结点分别加不同的图标
...全文
655 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomcatjava 2004-12-16
  • 打赏
  • 举报
回复
法一:扩展DefaultTreeCellRenderer,我的实现如下:

/**
* Customizes tree cell renderer.
*
* @version $version 1.0
* @author yuch
* @date 2004-7-2
*/

import java.awt.Component;
import java.awt.Font;
import java.awt.Color;

import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JTree;
import javax.swing.tree.DefaultTreeCellRenderer;

public class MyTreeCellRenderer extends DefaultTreeCellRenderer {

public MyTreeCellRenderer() {
}

public Component getTreeCellRendererComponent(
JTree tree,
Object value,
boolean selected,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus ) {
super.getTreeCellRendererComponent( tree,value,selected,expanded,leaf,row,hasFocus );

setBackgroundNonSelectionColor( new Color( 245,209,135 ) );
setBackgroundSelectionColor( Color.red );
setBorderSelectionColor( Color.green );

URL urlOpen = MyTreeCellRenderer.class.getClassLoader().getResource( "resource/images/openfold.gif" );
URL urlClose = MyTreeCellRenderer.class.getClassLoader().getResource( "resource/images/closedfold.gif" );
URL urlLeaf = MyTreeCellRenderer.class.getClassLoader().getResource( "resource/images/leaf.gif" );

setOpenIcon( new ImageIcon(urlOpen) );
setClosedIcon( new ImageIcon(urlClose) );
setLeafIcon( new ImageIcon(urlLeaf) );

//这个地方可以自己设定条件,什么条件显示什么样的字体,Icon什么的
Font font = getFont();
if( !leaf ) {
setFont( font.deriveFont( Font.BOLD ) );
}
else {
setFont( font.deriveFont( Font.ITALIC ) );
}

return this;
}
}
FGS 2004-12-16
  • 打赏
  • 举报
回复
参考Icon,很容易的。
liangfengxx 2004-12-16
  • 打赏
  • 举报
回复
恩,我也在搞这个东东,帮你顶
含训练好的YOLO权重与PyQt可视化检测界面,开箱即用,毕业设计/课程设计可直接上手。 【数据集概况】 · 检测类别(中文):[冲浪者(surfer)] · 训练集:438 张 · 验证集:125 张 · 测试集:63 张 · 总计:626 张 该数据集针对海滩冲浪场景进行精心构建,全面覆盖冲浪者在不同海浪条件下的动态表现,为海洋运动安全监测与行为分析提供了高价值数据资源,显著提升了相关领域的研究与应用水平。 该数据集训练集438张、验证集125张、测试集63张,分布科学合理,训练集规模充足以支持模型充分学习,验证集与测试集比例恰当,有效保障模型评估的准确性和可靠性。 该数据集标注质量卓越,所有冲浪者目标均被精确标注,边界框紧密贴合目标轮... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 91 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.8359** mAP50-95 | 0.4031 Precision | 0.8209 Recall | 0.7764 train/box_loss | 1.7868 train/cls_loss | 0.8077 val/box_loss | 1.7200 val/cls_loss | 0.7941 【训练过程分析】 91 轮训练后 mAP50 为 0.8359,模型基本收敛但还有提升余地。Loss 曲线下降正常,后期趋于平缓。mAP50-95 为 0.4031,和 mAP50 差距 0.43,定位精度是主要短板。 【模型性能评估】 Precision 0.8209、Recall 0.7764,精度高于...
内容概要:本文介绍了基于神经网络的数据驱动迭代学习控制(ILC)算法,旨在解决具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车路径跟踪问题,并提供了完整的Matlab代码实现。该方法融合了神经网络强大的非线性逼近能力与迭代学习控制在重复任务中不断优化性能的优势,能够在系统动态模型未知的情况下,通过多次运行轨迹的误差反馈,逐步提升控制器的跟踪精度。文中系统阐述了算法的理论基础、控制架构设计、神经网络的训练机制及其与ILC框架的集成方法,重点攻克了无人车在复杂、不确定环境下实现高精度、强鲁棒性轨迹跟踪的技术难题。; 适合人群:具备一定自动控制理论基础和Matlab编程能力,从事无人驾驶、智能控制、机器人或优化算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于无人车、机器人等需要执行周期性或重复路径任务的智能系统中,实现高精度的轨迹跟踪;②为解决非线性、强耦合、模型不确定系统的控制问题提供一种先进的数据驱动解决方案;③目标是帮助读者深入理解并掌握数据驱动的ILC与神经网络深度融合的前沿控制策略,完成从理论分析、算法设计到仿真实践的全流程学习。; 阅读建议:学习者应重点关注算法的迭代学习律设计、神经网络权重的在线更新机制以及二者协同工作的原理,结合所提供的Matlab代码进行仿真调试,通过改变期望轨迹、初始条件、系统噪声和外部干扰等参数,全面验证算法的收敛性、鲁棒性和泛化能力。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧