java树形目录展示
package test;
import java.awt.Component;
import java.awt.Container;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
public class MyTree extends JFrame {
private Container con;
private JTree tree;
private DefaultTreeModel treeModel;
private Map<String,ArrayList<String>>map=new HashMap<String,ArrayList<String>>();
public MyTree(String s,String root){
super(s);
con=getContentPane();
DefaultMutableTreeNode rt=new DefaultMutableTreeNode(root);
treeModel = new DefaultTreeModel(rt);
//DefaultMutableTreeNode r1=new DefaultMutableTreeNode("book");
//treeModel.insertNodeInto(r1, rt, rt.getChildCount());
}
private void ShowTree(){
JTree tree = new JTree(treeModel);
JScrollPane scrollpane=new JScrollPane(tree);
con.add(scrollpane);
setSize(400,400);
setVisible(true);
validate();
setVisible(true); //设置可见
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void add(){
DefaultMutableTreeNode root=(DefaultMutableTreeNode) treeModel.getRoot();
String sf=root.toString();
for(String Key:map.keySet()){
if(sf.equals(Key)){
continue;
}
else
{
addnode(root,Key);
}
}
System.out.println("ok!");
}
private void init(){
ArrayList<String>li=new ArrayList<String>();
li.add("book");
li.add("hotel");
li.add("ride");
map.put("travel", li);
ArrayList<String>li1=new ArrayList<String>();
li1.add("search");
li1.add("social");
map.put("book", li1);
ArrayList<String>li2=new ArrayList<String>();
li2.add("X");
li2.add("Y");
map.put("hotel", li2);
System.out.println("mapsize"+map.size());
ArrayList<String>li3=new ArrayList<String>();
li3.add("X1");
li3.add("Y1");
map.put("X", li3);
}
private void addnode(DefaultMutableTreeNode n,String key){
ArrayList<String>list=map.get(key);
// DefaultMutableTreeNode root=(DefaultMutableTreeNode) treeModel.getRoot();
Enumeration<?> enumeration=n.children();
while(enumeration.hasMoreElements()){
DefaultMutableTreeNode node1=(DefaultMutableTreeNode) enumeration.nextElement();
String str=node1.toString();
if(str.equals(key)){
for(String s:list){
DefaultMutableTreeNode r1=new DefaultMutableTreeNode(s);
treeModel.insertNodeInto(r1,node1,node1.getChildCount());
}
}
addnode(node1,key);
}
}
private void addroot(){
DefaultMutableTreeNode root=(DefaultMutableTreeNode) treeModel.getRoot();
String sroot=root.toString();
ArrayList<String>list=map.get(sroot);
for(String sr:list){
DefaultMutableTreeNode r1=new DefaultMutableTreeNode(sr);
treeModel.insertNodeInto(r1,root,root.getChildCount());
}
}
public static void main(String[] args) {
MyTree tree=new MyTree("目录展示","travel");
tree.init();
tree.addroot();
tree.add();
tree.ShowTree();
}
}
java树形目录展示的更多相关文章
- Java实现遍历N级树形目录结构
最近挺忙,一直在做项目,然后有个树形目录结构需要返回给前端,这里给大家说一下实现的思路. 具体达到的效果类似: 一级目录A: 二级目录A: 三级目录: 四级目录: 文件.txt 二级目录B: 文件1. ...
- eclipse项目目录展示结构设置
我因为前后端都搞过, 解除过很多的开发IDE,说真的,很多的项目目录结构都是一级一级分开,然后我可以通过展开等操作来查看文件等资源信息,结果呢?java的开发IDE eclipse默认的项目目录展示简 ...
- IDEA从Github中Clone Maven项目,解决树形目录及Jar包依赖的问题
很多人在开发中都会碰到的一个问题,当我们用IDEA从Github中检出Maven工程后(Java),发现既不能运行,也不能编译,左侧的树形目录还怪怪的,现在就来说说如何解决这个问题. IDEA从git ...
- [moka同学收藏]Vim升华之树形目录插件NERDTree安装图解
无意中看到实验室的朋友使用的vim竟然能在左边显示树形目录,感觉很方便,这样子文件夹有什么文件一目了然.她说是一个插件叫NERDTree,安装执行后的效果如下,不是你想要的效果就别安了.我的系统是Ub ...
- Vim升华之树形目录插件NERDTree安装图解
来源:CSDN 作者:mybelief321 无意中看到实验室的朋友使用的vim竟然能在左边显示树形目录,感觉很方便,这样子文件夹有什么文件一目了然.他说是一个插件叫NERDTree,安装执行后的效果 ...
- Winform开发主界面菜单的动态树形列表展示
我在之前很多文章里面,介绍过Winform主界面的开发,基本上都是标准的界面,在顶部放置工具栏,中间区域则放置多文档的内容,但是在顶部菜单比较多的时候,就需要把菜单分为几级处理,如可以在顶部菜单放置一 ...
- vim 树形目录插件NERDTree安装及简单用法
转自: http://blog.csdn.net/love__coder/article/details/6659103 1,安装NERDTree插件 先下载,官网:http://www.vim.or ...
- windows中java读目录空格变成%20 处理方法
URL url = Thread.currentThread().getContextClassLoader().getResource(""); String path = ur ...
- Java生成目录
Java生成目录 1.说明 推断目录是否存在,假设不存在就创建该目录.并打印其路径.假设存在,打印其路径 2.实现源代码 /** * @Title:BuildFolder.java * @Packag ...
随机推荐
- NotePad++左侧导航
NotePad++ 1. 增加左侧导航 a. 通过工具栏里面的“插件”->Plugin Manager-> Shwo Plugin Manager b. 找到Explorer勾选,点击I ...
- ajax下载多文件,并且打包 C#中 ,文件批下载zip
//提交要下载的文件 $.ajax({ url:"/sub/ZipFile.aspx", data:"paras="+datas, type: 'HEAD', ...
- 一步一步来做WebQQ机器人-(五)(发送消息||完结)
× 本篇主要是: 发送QQ消息(to:好友,群),以及对小黄鸡抓包利用它的语言库 本文是WebQQ流程的最后一章 最后一章内容不多但我还是啰嗦,可能对大部分人都已知晓的流程方法我也会介绍一下 前面几个 ...
- 自定义RecyclerView.ItemDecoration,实现RecyclerView的分割线效果
[转] 原文 自定义RecyclerView.ItemDecoration,实现RecyclerView的分割线效果 字数1598 阅读302 评论2 喜欢23 1.背景 RecyclerView ...
- Quartz2之入门示例【转】
原文地址:http://liuzidong.iteye.com/blog/1118992 环境:XP+Myeclipse6.5+JDK1.6 quartz官网:http://www.quartz-sc ...
- BitTorrent DHT 协议中文翻译
前言 做了一个磁力链接和BT种子的搜索引擎 {Magnet & Torrent},因此把 DHT 协议重新看了一遍. BitTorrent 使用"分布式哈希表"(DHT)来 ...
- 关于apache做301的问题
http://www.internetmarketingninjas.com/blog/search-engine-optimization/301-redirects/ RedirectMatch ...
- 利用vmware 搭建分布式集群
前言: 我们需要至少3台服务器来实现分布式,鉴于没那么多钱买真机器,从学习和开发的角度看,只有虚拟机一条路了. 软件选择: 虚拟机使用VMware软件,因为主流而且资料比较多,学习成 ...
- JMeter学习-037-JMeter调试工具之四-BeanShell+jmeter.log
前面三篇文章分别讲述了 HTTP Mirror Server . Debug PostProcessor 和 Debug Samper 的脚本调试实例.此文主要讲述第四种调试方法,通过 BeanShe ...
- SQL Server 常用日期查询语句
--本月月初select dateadd(mm,datediff(mm,0,getdate()),0) --本月月末select DATEADD(DD,-1,DATEADD(MONTH,1+DAT ...