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 ...
随机推荐
- 在Ubuntu上安装网易云音乐
对于网易,我只服云音乐,业界良心,用过的人都知道.我最喜欢的就是歌曲的评论功能,还有朋友圈子.里面有很多好段子,还有很多的好故事,基本上,不是分手,就是回忆初恋,还有吐槽的.我认为音乐带给人的不仅是耳 ...
- Orcal函数
where b.rn between 4 and 6--日期函数select sysdate from dual--返回两个日期select months_between(to_date('2017- ...
- caffe中的BatchNorm层
在训练一个小的分类网络时,发现加上BatchNorm层之后的检索效果相对于之前,效果会有提升,因此将该网络结构记录在这里,供以后查阅使用: 添加该层之前: layer { name: "co ...
- sublime通用快捷键 汉化 安装 插件
Ctrl+Alt+P 切换项目 1.Ctrl+Shift+P 打开Package Control Ctrl + Shift + P ,输入View, 选择Toogle Tabs ...
- LeetCode Design Hit Counter
原题链接在这里:https://leetcode.com/problems/design-hit-counter/. 题目: Design a hit counter which counts the ...
- CXF WebService整合SpringMVC的maven项目
首先推荐博客:http://www.cnblogs.com/xdp-gacl/p/4259481.html http://blog.csdn.net/hu_shengyang/article/de ...
- MVC中自带的异步((Ajax.BeginForm)无效
1.确定unobtrusive-ajax已经引用,VS2012带,2013不带 2.注意jq和unobtrusive-ajax引用顺序问题,确保jq在前 3.注意JQ和unobtrusive-ajax ...
- css3的新特性transform,transition,animation
一.transform css3引入了一些可以对网页元素进行变换的属性,比如旋转,缩放,移动,或者沿着水平或者垂直方向扭曲(斜切变换)等等.这些的基础都是transform属性 transform属性 ...
- powershell
function 怎么执行: http://www.cnblogs.com/bradwarden/p/3370260.html PowerShell script can be used in: 1. ...
- C语言第三次作业
#include<stdio.h>//1.三角形 int main() { printf("*\n"); printf("**\n"); print ...