如何在JTree中将"我的电脑"设置成根目录

DDWae 2011-08-19 02:00:13
如何在JTree中将"我的电脑"设置成根目录,然后点击一下就会列出"我的电脑"下所有的盘.还有就是怎样获得各个盘的名称.例如我电脑的D盘我将他的名称改成了"Study",要怎样获得这个名称?
...全文
118 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuwei003 2011-08-19
  • 打赏
  • 举报
回复
只实现了最基本的,你可以根据这个扩展

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;

public class N110819 {
public static void main(String[] args) {
// 构造函数:JTree()
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode( " 我的电脑 " , true);
JTree example1 = new JTree(node1);
JPanel panel = new JPanel();
List<String> root = getRoot();
for(String s : root){
node1.add(new DefaultMutableTreeNode(s, true));
}
panel.setSize(350, 350);
panel.add(example1);
//panel.add ( new JScrollPane (example1);
JFrame frame = new JFrame ( " JTreeDemo " );
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.setSize(400,400);
frame.setContentPane (panel);
frame.setVisible(true);
}

static List<String> getRoot(){
File[] root = File.listRoots();
List<String> rootNames = new ArrayList<String>();
for(File f : root){
rootNames.add(f.toString());
}
return rootNames;
}
}
Ely 2011-08-19
  • 打赏
  • 举报
回复

package com.xcy.test;

import java.io.File;

import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.filechooser.FileSystemView;
import javax.swing.tree.DefaultMutableTreeNode;

public class JTreeTest extends JFrame {
public JTreeTest() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("我的电脑");
FileSystemView sys = FileSystemView.getFileSystemView();
File[] files = File.listRoots();
for (int i = 0; i < files.length; i++) {//测试的时候最好是把这行代码换成 for (int i = 1; i < 2; i++) { i=1在我机子上 是指定D盘
DefaultMutableTreeNode temp = new DefaultMutableTreeNode(sys.getSystemDisplayName(files[i]));
root.add(temp);
bind(temp,files[i].toString());//测试的时候最好是把这行代码换成 bind(temp,"D:\xxx\xxx");指定一个文件夹,否则遍历整个文件系统会非常慢
}
JTree jtree = new JTree(root);
this.add(jtree);
this.setSize(500, 500);
this.setVisible(true);
}

public void bind(DefaultMutableTreeNode node,String path){
File file = new File(path);
File[] files = file.listFiles();
for(int i=0;files!=null && i<files.length;i++){
File tempFile = files[i];
if(tempFile.isDirectory()){
DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(tempFile.getName());
node.add(tempNode);
bind(tempNode,tempFile.getAbsolutePath());
}else{
DefaultMutableTreeNode tempNode = new DefaultMutableTreeNode(tempFile.getName());
node.add(tempNode);
}
}
}

public static void main(String[] args) {
new JTreeTest();
}
}

DDWae 2011-08-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wangquanzheng 的回复:]

哦,jquery有现成的,更简单。楼主网上搜搜。祝你好运
[/Quote]

我写的是JavaSE喔~.用java写的.这个也适合吗?.
安心逍遥 2011-08-19
  • 打赏
  • 举报
回复
哦,jquery有现成的,更简单。楼主网上搜搜。祝你好运
DDWae 2011-08-19
  • 打赏
  • 举报
回复
没有人知道怎么办吗?.我只想用JTree写个树形结构....

62,622

社区成员

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

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