JAVA 资源管理器

简介:

import java.awt.Dimension;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.BoxLayout;
import javax.swing.tree.TreePath;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
/*
JTree的构造函数:
JTree()
JTree(Hashtable value)
JTree(Object[] value)//只有这个构造函数可以创建多个根结点
JTree(TreeModel newModel)
JTree(TreeNode root)
JTree(TreeNode root, boolean asksAllowsChildren)
JTree(Vector value)

*/
public class JTreeDemo
{
 public static void main (String[] args)
 {


  //构造函数:JTree()
  JTree example1 = new JTree();

 

  
  //构造函数:JTree(Object[] value)
  Object[] letters= {"a", "b", "c", "d", "e"};
  JTree example2 = new JTree (letters);

 


  //构造函数:JTree(TreeNode root)(TreeNode空)
  //用空结点创建树
  DefaultMutableTreeNode node1 = new DefaultMutableTreeNode();//定义树结点
  JTree example3 = new JTree (node1);//用此树结点做参数调用 JTree的构造函数创建含有一个根结点的树

 


  //构造函数:JTree(TreeNode root)(同上,只是TreeNode非空)
  //用一个根结点创建树
  DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Color");
  JTree example4 = new JTree (node2);//结点不可以颜色,默认为白面黑字
  example4.setBackground (Color.lightGray);

 


  //构造函数:JTree(TreeNode root, boolean asksAllowsChildren)(同上,只是TreeNode又有不同)
  //使用DefaultMutableTreeNode类先用一个根结点创建树,设置为可添加孩子结点,再添加孩子结点
  DefaultMutableTreeNode color = new DefaultMutableTreeNode("Color", true);
  DefaultMutableTreeNode gray = new DefaultMutableTreeNode ("Gray");
  color.add (gray);
  color.add (new DefaultMutableTreeNode ("Red"));
  gray.add (new DefaultMutableTreeNode ("Lightgray"));
  gray.add (new DefaultMutableTreeNode ("Darkgray"));
  color.add (new DefaultMutableTreeNode ("Green"));
  JTree example5 = new JTree (color);
  
  
  
  
  //构造函数:JTree(TreeNode root)(同上,只是TreeNode非空)
  //通过逐个添加结点创建树
  DefaultMutableTreeNode biology = new DefaultMutableTreeNode ("Biology");
  DefaultMutableTreeNode animal = new DefaultMutableTreeNode ("Animal");
  DefaultMutableTreeNode mammal = new DefaultMutableTreeNode ("Mammal");
  DefaultMutableTreeNode horse = new DefaultMutableTreeNode ("Horse");
  mammal.add (horse);
  animal.add (mammal);
  biology.add (animal);
  JTree example6 = new JTree (biology);
  horse.isLeaf();
  horse.isRoot();
  
  


  //构造函数:JTree(TreeModel newModel)
  //用DefaultMutableTreeNodel类定义一个结点再用这个结点做参数定义一个用DefaultTreeMode
  //创建一个树的模型,再用JTree的构造函数创建一个树
  
  DefaultMutableTreeNode root = new DefaultMutableTreeNode ("Root1");
  DefaultMutableTreeNode child1 = new DefaultMutableTreeNode ("Child1");
  DefaultMutableTreeNode child11 = new DefaultMutableTreeNode ("Child11");
  DefaultMutableTreeNode child111 = new DefaultMutableTreeNode ("Child111");
  root.add (child1); child1.add (child11); child11.add (child111);
  
  
  
  DefaultTreeModel model = new DefaultTreeModel (root);
  
  JTree example7 = new JTree (model);

 

  JPanel panel = new JPanel();
  panel.setLayout (new BoxLayout (panel, BoxLayout.X_AXIS));
  panel.setPreferredSize (new Dimension (700, 400));
  panel.add (new JScrollPane (example1));//JTree必须放在JScrollPane上
  panel.add (new JScrollPane (example2));
  panel.add (new JScrollPane (example3));
  panel.add (new JScrollPane (example4));
  panel.add (new JScrollPane (example5));
  panel.add (new JScrollPane (example6));
  panel.add (new JScrollPane (example7));
  

 

  JFrame frame = new JFrame ("JTreeDemo");
  frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
  frame.setContentPane (panel);
  frame.pack();
  frame.show();
 }
}
==========================这一种好简单,很好用======================================
import   org.eclipse.swt.widgets.*;   
    
  public   class   Snippet33   {   
    
  public   static   void   main   (String   []   args)   {   
  Display   display   =   new   Display   ();   
  Shell   shell   =   new   Shell   (display);   
  shell.open   ();   
  DirectoryDialog   dialog   =   new   DirectoryDialog   (shell);   
  dialog.setFilterPath   ("c:\\");   //Windows   specific   
  System.out.println   ("RESULT="   +   dialog.open   ());   
  while   (!shell.isDisposed())   {   
  if   (!display.readAndDispatch   ())   display.sleep   ();   
  }   
  display.dispose   ();   
  }   
    
  }
==================================================================================
楼上的用的是swt包,看见这个没org.eclipse.swt.widgets   
  下面是列表,你自己再改改吧,用的是jdk的jtree写的遍列所有盘文件夹   
    
  import   java.awt.BorderLayout;   
  import   java.awt.Color;   
  import   java.awt.Dimension;   
  import   java.awt.FlowLayout;   
  import   java.awt.event.ActionEvent;   
  import   java.awt.event.ActionListener;   
  import   java.awt.event.MouseAdapter;   
  import   java.awt.event.MouseEvent;   
  import   java.io.File;   
  import   java.io.IOException;   
    
  import   javax.swing.BorderFactory;   
  import   javax.swing.JButton;   
  import   javax.swing.JDialog;   
  import   javax.swing.JLabel;   
  import   javax.swing.JPanel;   
  import   javax.swing.JScrollPane;   
  import   javax.swing.JTree;   
  import   javax.swing.event.TreeExpansionEvent;   
  import   javax.swing.event.TreeExpansionListener;   
  import   javax.swing.filechooser.FileSystemView;   
  import   javax.swing.tree.DefaultMutableTreeNode;   
  import   javax.swing.tree.DefaultTreeModel;   
  import   javax.swing.tree.TreePath;   
  import   javax.swing.tree.TreeSelectionModel;   
    
  public   class   FileTree   extends   JDialog   {   
  private   JLabel   path_   =   new   JLabel("   ");   
  private   JTree   tree_;   
  private   static   String   filepath;   
    
          public   FileTree()   {   
  init();   
          }   
          private   void   init()   {   
  JPanel   labelPanel   =   new   JPanel(new   FlowLayout(FlowLayout.LEFT));   
  labelPanel.setSize(300,   40);   
  JPanel   buttonPanel   =   new   JPanel(new   FlowLayout(FlowLayout.RIGHT));   
  JLabel   current   =   new   JLabel("Current   Selection");   
  labelPanel.setLayout(new   BorderLayout());   
  labelPanel.add(current,   BorderLayout.NORTH);   
  labelPanel.add(path_,   BorderLayout.SOUTH);   
    
  File[]   roots   =   (new   PFileSystemView()).getRoots();   
  FileNode   nod   =   new   FileNode   (roots[0]);   
  nod.explore();   
  tree_   =   new   JTree(new   DefaultTreeModel(nod));   
  tree_.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);     
    
  JScrollPane   sp   =   new   JScrollPane(tree_);   
  sp.setBorder(BorderFactory.createEtchedBorder(Color.white,   new   Color(148,   145,   140)));   
    
  labelPanel.setBorder(BorderFactory.createEmptyBorder(0,   19,   0,   0));   
  JButton   buttonOK   =   new   JButton("OK");   
  buttonOK.setPreferredSize(new   Dimension(70,   25));   
  JButton   buttonCanel   =   new   JButton("Canel");   
  buttonCanel.setPreferredSize(new   Dimension(70,   25));   
  buttonPanel.add(buttonOK);   
  buttonPanel.add(buttonCanel);   
            
  //canel   action   
  buttonCanel.addActionListener(new   ActionListener()   {   
  public   void   actionPerformed(ActionEvent   e)   {   
  System.exit(0);   
  }   
  });   
  //ok   action   
  buttonOK.addActionListener(new   ActionListener()   {   
  public   void   actionPerformed(ActionEvent   e)   {   
  System.err.println(filepath);       
  }   
  });   
  tree_.setShowsRootHandles(true);   
  tree_.addTreeExpansionListener(new   TreeExpansionListener()   {   
  public   void   treeCollapsed(TreeExpansionEvent   e)   {   
    
  }   
  public   void   treeExpanded   (TreeExpansionEvent   e)   {   
  TreePath   path   =   e.getPath();   
  FileNode   node   =   (FileNode)path.getLastPathComponent();   
  if   (!node.isExplored())   {   
  DefaultTreeModel   model   =   (   
  (DefaultTreeModel)   tree_.getModel());   
  node.explore();   
  model.nodeStructureChanged(node);   
  }   
  }                                 
  });   
  tree_.addMouseListener(new   MouseAdapter()   {   
  public   void   mousePressed(MouseEvent   e)   {   
  JTree   tree   =   (JTree)e.getSource();   
  int   row   =   tree.getRowForLocation(e.getX(),   e.getY());   
  if   (row   ==   -1)   {   
  return;   
  }   
  TreePath   path   =   tree.getPathForRow(row);   
  if   (path   ==   null)   {   
  return;   
  }   
  FileNode   node   =   (FileNode)path.getLastPathComponent();   
  if   (node   ==   null)   {   
  return;   
  }   
  filepath   =   node.getString();   
  path_.setText(filepath);   
  }   
  });   
  getContentPane().add(sp,   BorderLayout.CENTER);   
  getContentPane().add(labelPanel,   BorderLayout.NORTH);   
  getContentPane().add(buttonPanel,   BorderLayout.SOUTH);   
  setSize(350,   400);   
  this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);   
  this.setTitle("File   Tree");   
          }   
  class   FileNode   extends   DefaultMutableTreeNode   {   
  private   boolean   explored_   =   false;   
    
  public   FileNode(File   file)   {   
  setUserObject   (file);   
  }   
  public   boolean   getAllowChildren()   {   
  return   isDirectory();   
  }   
  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();   
  }   
  public   String   toString()   {   
  File   file   =   getFile   ();   
  String   filename   =   file.toString();   
  int   index   =   filename.lastIndexOf("\\");   
  return   (index   !=   -1   &&   index   !=   filename.length()   -   1)   ?   
  filename.substring(index   +   1)   :   
  filename;   
  }   
  public   String   getString()   {   
  File   file   =   getFile   ();   
  String   filename   =   file.getAbsolutePath();   
  return   filename;   
  }   
  public   void   explore()   {   
  if   (!isDirectory())   {   
  return;   
  }   
  if   (!isExplored())   {   
  File   file   =   getFile   ();   
  File   []   children   =   file.listFiles();   
  for   (int   i   =   0;   i   <   children.length;   ++i)   {   
  if   (children[i].isDirectory())   {   
  add(new   FileNode   (children[i]));   
  }   
  }     
  explored_   =   true;   
  }   
  }     
  }   
    
  class   PFileSystemView   extends   FileSystemView   {   
  public   File   createNewFolder(File   containingDir)   throws   IOException   {   
  return   null;   
  }   
  }   
  public   static   void   main(String[]   args)   {   
          (new   FileTree()).show(true);   
  }   

本文转自kenty博客园博客,原文链接http://www.cnblogs.com/kentyshang/archive/2007/08/14/855565.html如需转载请自行联系原作者


kenty

相关文章
|
21天前
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
117 4
|
4月前
|
资源调度 安全 Java
Java 大数据在智能教育在线实验室设备管理与实验资源优化配置中的应用实践
本文探讨Java大数据技术在智能教育在线实验室设备管理与资源优化中的应用。通过统一接入异构设备、构建四层实时处理管道及安全防护双体系,显著提升设备利用率与实验效率。某“双一流”高校实践显示,设备利用率从41%升至89%,等待时间缩短78%。该方案降低管理成本,为教育数字化转型提供技术支持。
98 1
|
4月前
|
消息中间件 机器学习/深度学习 Java
java 最新技术驱动的智能教育在线实验室设备管理与实验资源优化实操指南
这是一份基于最新技术的智能教育在线实验室设备管理与实验资源优化的实操指南,涵盖系统搭建、核心功能实现及优化策略。采用Flink实时处理、Kafka消息队列、Elasticsearch搜索分析和Redis缓存等技术栈,结合强化学习动态优化资源调度。指南详细描述了开发环境准备、基础组件部署、数据采集与处理、模型训练、API服务集成及性能调优步骤,支持高并发设备接入与低延迟处理,满足教育机构数字化转型需求。代码已提供下载链接,助力快速构建智能化实验室管理系统。
132 44
|
3月前
|
前端开发 Java API
新手 Java 学习资料结合最新技术的精选推荐及高效学习资源参考
本文为新手推荐了涵盖Java基础到最新技术的学习资料,包括官方文档、在线课程、书籍、学习网站及实践平台,帮助系统掌握Java编程,并通过Spring Boot实战提升开发能力。
138 1
|
3月前
|
机器学习/深度学习 Java 大数据
Java 大视界 -- Java 大数据在智能政务公共资源交易数据分析与监管中的应用(202)
本篇文章深入探讨了 Java 大数据在智能政务公共资源交易监管中的创新应用。通过构建高效的数据采集、智能分析与可视化决策系统,Java 大数据技术成功破解了传统监管中的数据孤岛、效率低下和监管滞后等难题,为公共资源交易打造了“智慧卫士”,助力政务监管迈向智能化、精准化新时代。
|
11月前
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
206 9
|
12月前
|
Java
Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
【10月更文挑战第14天】Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
230 2
|
11月前
|
Java 开发者
JAVA高手必备:URL与URLConnection,解锁网络资源的终极秘籍!
在Java网络编程中,URL和URLConnection是两大关键技术,能够帮助开发者轻松处理网络资源。本文通过两个案例,深入解析了如何使用URL和URLConnection从网站抓取数据和发送POST请求上传数据,助力你成为真正的JAVA高手。
198 11
|
安全 Java 网络安全
【认知革命】JAVA网络编程新视角:重新定义URL与URLConnection,让网络资源触手可及!
【认知革命】JAVA网络编程新视角:重新定义URL与URLConnection,让网络资源触手可及!
115 2
|
缓存 前端开发 Java
在Java项目中实现跨域资源共享(CORS)
在Java项目中实现跨域资源共享(CORS)