import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
class Branch {
DefaultMutableTreeNode r;
//DefaultMutableTreeNode是树的数据结构中的通用节点,节点也可以有多个子节点。
public Branch(String[] data) {
r = new DefaultMutableTreeNode(data[0]);
for (int i = 1; i < data.length; i++)
r.add(new DefaultMutableTreeNode(data[i]));
//给节点r添加多个子节点
}
public DefaultMutableTreeNode node() {//返回节点
return r;
}
}
public class TreesDemo extends JPanel {
private static final long serialVersionUID = 1L;
String[][] data = { { "Colors", "Red", "Blue", "Green" }, { "Flavors", "Tart", "Sweet", "Bland" }, { "Length", "Short", "Medium", "Long" },
{ "Volume", "High", "Medium", "Low" }, { "Temperature", "High", "Medium", "Low" }, { "Intensity", "High", "Medium", "Low" } };
static int i = 0; //I用于统计按钮点击的次数
DefaultMutableTreeNode root, child, chosen;
JTree tree;
DefaultTreeModel model;
public TreesDemo() {
setLayout(new BorderLayout());
root = new DefaultMutableTreeNode("root");
//根节点进行初始化
tree = new JTree(root);
//树进行初始化,其数据来源是root对象
add(new JScrollPane(tree));
//把滚动面板添加到Trees中
model = (DefaultTreeModel) tree.getModel();
//获得数据对象DefaultTreeModel
JButton test = new JButton("Press me");
//按钮test进行初始化
test.addActionListener(new ActionListener() {
//按钮test注册监听器
public void actionPerformed(ActionEvent e) {
if (i < data.length) {
//按钮test点击的次数小于data的长度
child = new Branch(data[i++]).node();
//生成子节点
chosen = (DefaultMutableTreeNode)
//选择child的父节点
tree.getLastSelectedPathComponent();
if (chosen == null)
chosen = root;
model.insertNodeInto(child, chosen, 0);
//把child添加到chosen
}
}
});
test.setBackground(Color.blue);
//按钮test设置背景色为蓝色
test.setForeground(Color.white);
//按钮test设置前景色为白色
JPanel p = new JPanel();
//面板p初始化
p.add(test);
//把按钮添加到面板p中
add(p, BorderLayout.SOUTH);
//把面板p添加到Trees中
}
public static void main(String args[]) {
JFrame jf = new JFrame("JTree demo");
jf.getContentPane().add(new TreesDemo(), BorderLayout.CENTER);
//把Trees对象添加到JFrame对象的中央
jf.setSize(200, 500);
jf.setVisible(true);
}
}
分享到:
相关推荐
机械设计定量旋转包装机sw16可编辑全套设计资料100%好用.zip.zip
层级关系-关系图表-清新时尚彩虹色 -3
图表分类ppt
内容概要:本文档针对神卓组网设备提供详细的配置指导。重点介绍了两大常见的设置问题及其解决方案:一是网关设置冲突的问题,文中详细解释了需要避免与本地及其他相关联网络已使用的网关地址相重复,如避开常用的192.168.1.1以及神卓默认的192.168.51.1等。二是对于远程网段信息的误填,强调在配置中正确添加对方的IP网段而不是单一地址的重要性和具体步骤。这些信息可以帮助用户确保组网过程更加顺利、高效,有效规避可能存在的障碍与困难。 适用人群:适用于正在部署和管理中小型网络的企业管理员,尤其是那些缺乏专业IT知识但希望通过简单易懂的方式解决组网问题的小白用户。 使用场景及目标:旨在帮助技术人员和非专业人士掌握并解决神卓组网设备中最棘手且普遍遇到的技术难题—特别是有关于跨区域网络互联中网关设置与目标网络网段填写错误的情况。 其他说明:阅读本文时需要注意特别事项提示部分的内容,这将有助于预防由于错误操作导致无法连通的情况发生,并提升网络安全性和稳定性。
基于微信小程序的语言课学习系统设计与实现.docx
手机模型对比图PPT模板素材
立体箭头冲突关系PPT模板
资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,拿来就能用。放心下载使用!源码、说明、论文、数据集一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
图表分类ppt
码垛机图纸,伺料码垛机图纸,腻子粉码垛机图纸,可借鉴学习,参考设计
文本说明框联动关系PPT模板
基于Android的修图软件-课设
内容概要:本文档提供了一份详尽的 Ubuntu 20.04 安装指南,涵盖物理机和虚拟机两种安装方式。针对物理机,依次讲解了准备阶段(制作启动U盘、配置BIOS/UEFI)、系统安装(选择语言、键鼠设置、联网配置以及重点磁盘分区)、启动进入新系统的完整步骤;针对虚拟机,则围绕常用软件(VMware或VirtualBox)的新虚拟机制作、系统配置(含ISO挂载)等流程予以阐述。磁盘分区部分尤其细致,明确不同分区(根分区、Home、启动、Swap)的作用和推荐分配值,特别区分了手动和自动两种分区模式各自的优劣,方便不同类型用户根据需求做出合适的选择。 适用人群:无论是初次接触Ubuntu的新用户还是希望掌握双平台部署技巧的老手均能从中受益。 使用场景及目标:适用于需要安装Ubuntu作为独立操作系统或在现有宿主机中快速建立Linux测试环境的专业技术人员或计算机爱好者,帮助他们顺利地完成操作系统安装并理解其关键配置要点。 其他说明:由于不同硬件和个人偏好可能导致实际操作中存在些许差异,读者可根据自身情况进行适当调整。文中提到的操作步骤尽量保持通用性和简明性,使更多人更容易理解和上手。
ACCENTURE - How luxury brands are reinventing for success_CAIG
===如资源质量问题,可半价退款,代下全网资源,价格公道==== 基于Vue + Echarts 构建的数据可视化平台,酷炫大屏展示模板和组件库,持续更新各行各业实用模板和炫酷小组件。.zip。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
springboot项目驾校管理系统,含有完整的源码和报告文档
随机生成给定颗粒分布多孔介质 孔隙率可控
IMG20250110151521.jpg
springboot项目基于SpringBoot的私房菜定制上门服务系统的设计与实现,含有完整的源码和报告文档
171-西门子1200PLC机器人控制程序模板,程序模板清晰明了,容易看懂,有注释,硬件采用1214CPU,触摸屏采用KTP700系列。 打开软件采用博图V15.1及以上。