文件管理器JAVA课程设计报告.doc_第1页
文件管理器JAVA课程设计报告.doc_第2页
文件管理器JAVA课程设计报告.doc_第3页
文件管理器JAVA课程设计报告.doc_第4页
文件管理器JAVA课程设计报告.doc_第5页
已阅读5页,还剩3页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文件管理器JAVA课程设计报告课程设计报告学院、系专业名称网络工程课 程设计科目Java程序课程设计学生姓名指导教师完成时 间2011年3月-5月文件管理器一、设计任务与目标编写一个窗口程序,该程序可以打开硬盘中的莫个目录,并可以打开目录中莫个文件进行浏览。设计要求1)在界面上设计两个文本区,一个用于显示 打开的硬盘上的目录,另一用于打开所选中该目录中的文 件。2)设计文本框,用于显示当前的目录位置*3)设计一个 压缩”按钮,和一个指定目录文本框,将选中的这个文件 压缩到指定的目录中。二、方案设计与论证对于题目的要求1,使用布局管理器可以设计两个文本区。对于题目要求2),使用JTextFiel

2、d文本框组件可以实现。对于题目要求3),使用JButton按钮组件实现。对于此题的设计要求,我从总体上进行了构思。运用Java Swing高级组件中的JTree树组件实现在图形 用户界面(GUI)下文件浏览器的编制。Javax.swing.JTree类提供了组件的功能,可以方便地显示多层次的数据,比如Windows文件管理器中的文件列表 就是有树状结构实现的。本题设计要求就是Windows文件管理器的工作。树组件有节点组成,对树组件的操作实际上就是对树上 的节点做添置画叶的操作。树中最基本的对象是节点。使用JTree的步骤 (1)创建树 (2)对节点的选择做 由响应(3)自定义树的外观表现(4

3、)动态改变一棵树(5)创建树的数据模型(6)懒加载孩子(7)如何写expansionlinstener (8)如何写 tree-will-expand listener 禾fj用 JTree 类,你可以显示等级体系的数据Jtree垂直显示它的数据。树中显示的每一行包含一项数据,称之为节点(node)。每颗树有一个根节点(root node ),其他所有节点是它 的子孙。默认情况下,树只显示根节点,但是你可以设置改变默 认显示方式。一个节点可以拥有孩子也可以不拥有任何子孙。我们称那些可以拥有孩子(不管当前是否有孩子)的节 点为分支节点”(branch nodes ),而不能拥有孩子的节点 为 叶

4、子节点 ”(leaf nodes )。分支节点可以有任意多个孩子。通常,用户可以通过点击实现展开或者折叠分支节点,使得他们的孩子可见或者不可见。默认情况下,除了根节点以外的所有分支节点默认呈现 折叠状态。程序中,通过监听tree expansion 或者 tree-will-expand事件可以检测分支节点的展开状态。三、程序框图或流程图,程序清单与调用关系构造及其刷新文件树回调关闭窗体 FileViwer流程图 version 1.0 位于FileViewe类中的构造函数中FileViewer.java 位于FileViewer类中Main方法中FileViewer.java 其中普通事件

5、监听方法位于 FileViewe类中,树的两个特殊事件监控类位 的于 DirExpansionListener 和 DirSelectionListener 两个内部 类中 FileViewer.java 位于 Compress 类中 Compress.java 注其中FileNode类FileNode.java为文件节点类,故不在流程 范围内 调用 WINRAR环境中的rar.exe进行压缩 获取目标 文件位置获取文件位置把子节点添加到树中多线程遍历子节点树节点展开事件捕获读取文件属性及其摘要,显示 在右区域获取文件对象树节点选择事件捕获普通控件事件捕获,例如单击按钮启用不同功能压缩文件 刷

6、新文件树系统关联打开文件关于对话框应用当前配置环境NO判断系统是否有 WINRAR 把rar.exe拷贝到系统目录下并配 置环境 设置目录树的显示样式添加节点展开事件监听添加节点选择事件监听遍历添加盘符节点添加目录根节点显示窗口 添加控件事件监听对窗口控件进行布局构造系统目录树模块初始化窗口各个控件结束 事件监听开始压缩模块加载窗体初始模块加载、全部源程序清单package jluzh.fileViewer; importjava.awt.*; import java.awt.event.*; import java.io.*; import java.text.DateFormat; imp

7、ort javax.swing.*; import javax.swing.tree.*; import javax.swing.event.*; public class FileViewer extends JFrame implements ActionListener /* * FileView 程序的主窗口 */ private static final long serialVersionUID 1L;/Eclipse自动生成的序列化版本 id号 private JTree m_tree;/ 文 件夹树 private DefaultTreeModel m_model;/ 默认树显

8、示模式 private JTextArea m_rightTextArea;/ 右边的文本显示区域private JTextFieldm_PathDisplay; 底部的路径显示区域 private JButton m_openBtn;/打开文件按钮private JButton m_compressBtn;/压缩文件按钮 private JButton m_refreshBtn;/刷新按钮 private JButton m_aboutBtn; private String m_szFileExcutePath;/ 文件打开绝对路径 public FileViewer super “File

9、Viewer /;设 置 窗 口 标 题 this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE; / 在 关 闭 窗 口 时候 结束程序 /*/初始化成员变量/*/*其中m_tree的初始化在构造系统目录树中*/ /*其中m_model的初始化在构造系统 目录树 中*/ m_rightTextArea new JTextArea;m_rightTextArea.setEditablefalse; 右面文本显示区域不可写m_PathDisplaynewJTextField;m_PathDisplay.setEditablefalse;/ 下面路径显示

10、区域不可写/初始化按钮并添加事件响应m_openBtn new JButton打开文件-利用系统关联打开文件 “ m_openBtn.addActionListenerthis; m_compressBtn new JButton 压 缩-配 置 winrar 成功 时可用 “ m_compressBtn.addActionListenerthis; m_refreshBtn new JButton "刷 新 “;m_refreshBtn.addActionListenerthis;m_aboutBtn new JButton “关 于 FileViewer m_aboutBtn.a

11、ddActionListenerthis;m_szFileExcutePathnull;/ 初始化文件打开路径 /*/构造系统目录树利用树自带的 TreeExpansionListener对树进行 Expansion和Selection 响 应 处 理/*DefaultMutableTreeNode top; 树形 目 录 的根节 点 DefaultMutableTreeNode node;/ 系统的盘符的节点 File口 roots File.listRoots;/列由可用的文件系统盘符数组构造根节点,后面加空格为了增大左面板初始面积top newDefaultMutableTreeNode

12、我的电脑“遍历所有盘符,增加 到 top 的孩子节点里 for int k0; k 0 m_file.getNamem_file.getPath; / / / 返回止匕节点的第一个 子 节点是 否存在 / / public boolean expandDefaultMutableTreeNodeparentDefaultMutableTreeNodefirstChildDefaultMutableTreeNodeparent.getFirstChild; if firstChild nullreturn false; Object obj firstChild.getUserObject; 返

13、回止匕 节点的用户对象 if obj instanceof Booleanreturn false;/ 节点已 经被扩展了parent.removeAllChildren; 释放子节点Filefiles listFiles; 获得本对象的文件列表数组if files nullreturn true;/节点本身是一个并没有展开的文件夹 Vector v new Vector;/自增长数组v /*/遍历文件数组,转换为自增长 数组 v for int k0; kfiles.length; k/遍历文件数组 File f filesk; FileNode newNode new FileNodef;

14、 /*/遍历自增长数组v,确认文件子节点是否已经被添加到v中,如果没有添加到v中,则添加 boolean isAdded false;/设置添加标记 false for int i0; iv.size; i/遍历自增长数组 FileNode ndFileNodev.elementAti; if newNpareTond 0比较在 v 中获取的节点 v.insertElementAtnd, i; isAdded true; break; if isAdded v.addElementnewNode;/ 我那件数组元素 加入v /*/遍历字增长数组v,如果 文件节点为一个文件 夹,则确认其为一个新

15、的子树根for int i0; iv.size; i FileNode fndFileNodev.elementAti;DefaultMutableTreeNodenodenewDefaultMutableTreeNodefnd; parent.addnode; if fnd.hasSubDirs node.addnew DefaultMutableTreeNode new Booleantrue ; / 确认为新子树根 return true; / / / 判断是否有子目录 / / public boolean hasSubDirs File files listFiles; if files nullreturn false; e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论