`
Jony.Hwong
  • 浏览: 114958 次
  • 来自: ...
社区版块
存档分类
最新评论

windows目录资源管理器的目录

阅读更多
package per.hwf.tree;

import java.io.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;

public class ResourceTree extends JPanel {
private final JTree kernelTree;

private final JScrollPane kernelScrollPane;

public ResourceTree(String drive) {
kernelTree = new JTree(this.createTreeModel(drive));
kernelScrollPane = new JScrollPane(kernelTree);

this.setLayout(new BorderLayout());
this.add(kernelScrollPane, BorderLayout.CENTER);

kernelTree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
TreePath path = e.getPath();
Object[] objs = path.getPath();

if (path != null) {
System.out.println("Path:   "
+ objs[objs.length - 1].toString());
}
}
});

kernelTree.addTreeExpansionListener(new TreeExpansionListener() {
public void treeCollapsed(TreeExpansionEvent e) {
//   do   something  
}

public void treeExpanded(TreeExpansionEvent e) {
UpdateStatus us = new UpdateStatus(e);
us.start();
}

class UpdateStatus extends Thread {
private TreeExpansionEvent tee;

UpdateStatus(TreeExpansionEvent e) {
tee = e;
}

public void run() {
System.out.println("Branch   node   is   exploring......");

SwingUtilities.invokeLater(new Runnable() {
public void run() {
TreePath path = tee.getPath();
FileNode node = (FileNode) path
.getLastPathComponent();

if (!node.isExplored()) {
DefaultTreeModel model = (DefaultTreeModel) kernelTree
.getModel();

node.explore();

model.nodeStructureChanged(node);
}

System.out.println("Branch   node   explored.");
}
});
}
}
});
}

public ResourceTree() {
this(null);
}

private DefaultTreeModel createTreeModel() {
return createTreeModel(null);
}

private DefaultTreeModel createTreeModel(String drive) {
if (null == drive) {
drive = "C:\\";
}

//   此处缺少字符串校验(正则表达式)  

File root = new File(drive);
FileNode rootNode = new FileNode(root);

rootNode.explore();

return new DefaultTreeModel(rootNode);
}
}


package per.hwf.tree;

import java.io.*;
import javax.swing.tree.*;

/*  
*   FileNode类是DefaultMutableTreeNode的简单继承。  
*   FileNode构造器将一个File对象制定为该TreeNode的用户对象(user   object)。  
*/
public class FileNode extends DefaultMutableTreeNode {
private boolean explored = false;

public FileNode(File file) {
setUserObject(file);
}

/*  
*   覆盖了DefaultMutableTreeNode.getAllowsChildren()方法。  
*   如果FileNode代表的是目录,则允许有子节点。  
*/
public boolean getAllowsChildren() {
return isDirectory();
}

/*  
*   覆盖了DefaultMutableTreeNode.isLeaf()方法。  
*   如果FileNode代表的不是目录,那它就是一个叶子节点。  
*/
public boolean isLeaf() {
return !isDirectory();
}

public File getFile() {
return (File) getUserObject();
}

public boolean isExplored() {
return explored;
}

public boolean isDirectory() {
File file = getFile();
return file.isDirectory();
}

/*  
*   覆盖了DefaultMutableTreeNode.toString()方法。  
*   返回路径的最后组件。  
*/
public String toString() {
File file = (File) getUserObject();
String filename = file.toString();
int index = filename.lastIndexOf(File.separator);

return (index != -1 && index != filename.length() - 1) ? filename
.substring(index + 1) : filename;
}

public void explore() {
if (!isDirectory()) {
return;
}

if (!isExplored()) {
File file = getFile();
File[] children = file.listFiles();

for (int i = 0; i < children.length; ++i) {
add(new FileNode(children[i]));
}

explored = true;
}
}
}
分享到:
评论

相关推荐

    JAVA 显示文件目录(像windows的资源管理器一样)

    JAVA显示文件目录(像windows的资源管理器一样)的程序

    java实现的本地文件管理器——仿Windows文件资源管理器

    1. 模仿Windows的文件资源管理器对本机的文件目录树的显示,对文件目录进行查看和浏览,用地址栏、文件目录树、打开文件夹等方法都可以在文件目录之间进行跳转 2. 对文件的基本操作:打开、删除、批量删除、重命名、...

    C语言函数包:windows下在资源管理器中打开相应目录

    这是我空余时间编写的在c语言中获取当前文件目录,打开相应目录的函数包,具体说明都在函数包中,如在使用中发现任何BUG,欢迎电邮本人,联系方式在函数包中

    C#写的Windows文件资源管理器

    8. 实现了在当前路径下“返回上一级目录”的功能; 9. 实现了在主窗体上方地址栏直接输入文件路径,然后直接回车查看该路径下的文件列表的功能; 10. 实现了对当前计算机文件、文件夹的监控功能。可定制化程度较高...

    Java仿Windows资源管理器.rar

    Java仿Windows资源管理器,基于MVC实现,执行文件在bin目录下runme.jar或start.bat  目录说明:  bin: 编译后的目标文件  icons: 程序运行需要用到的图标文件  src: 源代码文件  在功能上完全实现了资源...

    winform 实现资源管理器

    winform界面实现Windows风格的资源管理器界面,左边树状的文件目录,可以自定义加文件夹图标

    虚拟Windows资源管理器V2.5

    软件名称:虚拟Windows资源管理器V2.5 原名:影子目录及其浏览器 英文名称:Virtual Windows Explorer 简称:VE 作者:李均宇(李林星) EMAIL:E271828@TOM.COM或者MYVBVC@TOM.COM&lt;br/&gt;QQ:165442523&lt;br/&gt;...

    windows资源管理器对目录击右键卡死.pdf

    windows资源管理器对目录击右键卡死 一、 问题 在使用windows(特别是windows 10)的过程中,当对资源管理器中的目录击右键时会出现资源管理器卡死的情况。 二、 解决方案 如下图所示,打开资源管理器。。。

    VB与Windows资源管理器互拷文件

    VB与Windows资源管理器互拷文件 VB技术很实用的源码喜欢VB的朋友,相信它肯定可以提高编码的效率! 目录 译者序

    虚拟Windows资源管理器V3.2

    软件名称:虚拟Windows资源管理器V3.2 原名:影子目录及其浏览器 英文名称:Virtual Windows Explorer 简称:VE 作者:李均宇(李林星) EMAIL:E271828@TOM.COM或者MYVBVC@TOM.COM&lt;br/&gt;QQ:165442523&lt;br/&gt;...

    类似WINDOWS资源管理器的目录结构

    使用Visual C# 2005 中TreeView控件制作的类似WINDOWS资源管理器的目录结构-

    TreeView控件制作的类似WINDOWS资源管理器

    使用TreeView控件制作的类似WINDOWS资源管理器的目录结构

    Windows资源管理器(MFC)

    MFC写的资源管理器,含注释 帖点代码片段出来 // 获取盘符到目录树,作为根目录下一级节点 void CwinResManagerDlg::GetLogicalDrives(HTREEITEM hRoot) { size_t szAllDrivesStrings = GetLogicalDriveStrings(0...

    c#文件目录浏览控件,仿资源管理器

    使用winsheel开发的c#目录浏览器,已做成usercontrol控件,可以嵌入窗体使用,使用方式: 拷贝CYFolderBrowse.dll到工程, 添加为工程引用 添加为部件引用后,就可以在toolbox中看到 附件里还包括了调用例子,主要是...

    图形文件管理器total commander-替代windows资源管理器的好工具

    图形文件管理器total commander-替代windows资源管理器的好工具,尤其是其中目录比较功能,可以方便实现文档增量备份。

    虚拟Windows资源管理器V3.1

    软件名称:虚拟Windows资源管理器V3.1 原名:影子目录及其浏览器 英文名称:Virtual Windows Explorer 简称:VE 作者:李均宇(李林星) EMAIL:E271828@TOM.COM或者MYVBVC@TOM.COM&lt;br/&gt;QQ:165442523&lt;br/&gt;...

    模拟资源管理器的制作

    模拟资源管理器主要有三个任务: 1.设计Windows系统资源管理器界面 2.显示Windows系统驱动器内容 3.文件和目录的管理。

    Windows平台文件资源管理器Listary

    Windows 文件资源管理器饱受诟病,其中一条「罪状」就是恼人的搜索功能,而 Listary 就是为了改变这一点而生。 你可以在任意文件资源管理器窗口通过键盘输入直接调用 Listary 在本目录下进行搜索,并通过右键单击...

Global site tag (gtag.js) - Google Analytics