文件管理器JAVA课程设计报告文档Word格式.docx

上传人:聆听****声音 文档编号:984273 上传时间:2023-04-29 格式:DOCX 页数:25 大小:187.94KB
下载 相关 举报
文件管理器JAVA课程设计报告文档Word格式.docx_第1页
第1页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第2页
第2页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第3页
第3页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第4页
第4页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第5页
第5页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第6页
第6页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第7页
第7页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第8页
第8页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第9页
第9页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第10页
第10页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第11页
第11页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第12页
第12页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第13页
第13页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第14页
第14页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第15页
第15页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第16页
第16页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第17页
第17页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第18页
第18页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第19页
第19页 / 共25页
文件管理器JAVA课程设计报告文档Word格式.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

文件管理器JAVA课程设计报告文档Word格式.docx

《文件管理器JAVA课程设计报告文档Word格式.docx》由会员分享,可在线阅读,更多相关《文件管理器JAVA课程设计报告文档Word格式.docx(25页珍藏版)》请在冰点文库上搜索。

文件管理器JAVA课程设计报告文档Word格式.docx

(7)如何写expansionlinstener

(8)如何写tree-will-expandlistener

利用JTree类,你可以显示等级体系的数据Jtree垂直显示它的数据。

树中显示的每一行包含一项数据,称之为节点(node)。

每颗树有一个根节点(rootnode),其他所有节点是它的子孙。

默认情况下,树只显示根节点,但是你可以设置改变默认显示方式。

一个节点可以拥有孩子也可以不拥有任何子孙。

我们称那些可以拥有孩子(不管当前是否有孩子)的节点为“分支节点”

(branchnodes),而不能拥有孩子的节点为“叶子节点”(leafnodes

)。

分支节点可以有任意多个孩子。

通常,用户可以通过点击实现展开或者折叠分支节点,使得他们的孩子可见或者不可见。

默认情况下,除了根节点以外的所有分支节点默认呈现折叠状态。

程序中,通过监听treeexpansion或者tree-will-expand事件可以检测分支节点的展开状态。

三、程序框图或流程图,程序清单与调用关系

开始

初始化窗口各个控件

添加控件事件监听

构造系统目录树模块

判断系统是否有WINRAR

把rar.exe拷贝到系统目录下并配置环境

①窗体初始模块加载 NO

系统关联打开文件

应用当前配置环境

对窗口控件进行布局

②压缩模块加载

显示窗口

关于对话框

构造及其刷新文件树

添加目录根节点

遍历添加盘符节点

添加节点选择事件监听

③事件监听关闭窗体

结束

获取文件对象

读取文件属性及其摘要,显示在右区域

多线程遍历子节点

把子节点添加到树中

添加节点展开事件监听

设置目录树的显示样式

树节点选择事件捕获

普通控件事件捕获,例如:

单击按钮启用不同功

④压缩文件

树节点展开事件捕获

刷新文件树

调用WINRAR环境中的

rar.exe进行压缩

获取目标文件位置

获取文件位置

①位于FileViewe类中的构造函数中(FileViewer.java)

②位于FileViewer类中Main方法中(FileViewer.java)

③其中普通事件监听方法位于FileViewe类中,树的两个特殊事件监控类位的于

DirExpansionListener和DirSelectionListener两个内部类中(FileViewer.java)

④位于Compress类中(Compress.java)

注:

其中FileNode类(FileNode.java)为文件节点类,故不在流程范围内

FileViwer流程图

version1.0

一、全部源程序清单

packagejluzh.fileViewer;

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjava.text.DateFormat;

importjavax.swing.*;

importjavax.swing.tree.*;

importjavax.swing.event.*;

publicclassFileViewerextendsJFrame implementsActionListener

{

/**

*FileView程序的主窗口

*/

privatestaticfinallongserialVersionUID=1L;

//Eclipse自动生成的序列化版本id号

privateJTree m_tree;

//文件夹树privateDefaultTreeModelm_model;

//默认树显示模式

privateJTextAream_rightTextArea;

//右边的文本显示区域privateJTextFieldm_PathDisplay;

//底部的路径显示区域

privateJButtonm_openBtn;

//打开文件按钮privateJButtonm_compressBtn;

//压缩文件按钮privateJButtonm_refreshBtn;

//刷新按钮privateJButtonm_aboutBtn;

privateStringm_szFileExcutePath;

//文件打开绝对路径

publicFileViewer()

束程序

super("

FileViewer"

);

//设置窗口标题

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//在关闭窗口时候结

//

//***************************************************************************

*********

//初始化成员变量

/*其中m_tree的初始化在《构造系统目录树》中*/

/*其中m_model的初始化在《构造系统目录树》中*/

m_rightTextArea=newJTextArea();

m_rightTextArea.setEditable(false);

//右面文本显示区域不可写

m_PathDisplay=newJTextField();

m_PathDisplay.setEditable(false);

//下面路径显示区域不可写

//初始化按钮并添加事件响应

m_openBtn=newJButton("

打开文件 利用系统关联打开文件"

m_openBtn.addActionListener(this);

m_compressBtn=newJButton("

压缩 配置winrar成功时可用"

m_compressBtn.addActionListener(this);

m_refreshBtn=newJButton("

刷新"

m_refreshBtn.addActionListener(this);

m_aboutBtn=newJButton("

关于FileViewer"

m_aboutBtn.addActionListener(this);

m_szFileExcutePath=null;

//初始化文件打开路径

// 构造系统目录树 利用树自带的TreeExpansionListener对树进行

Expansion和Selection响应处理

DefaultMutableTreeNodetop;

//树形目录的根节点DefaultMutableTreeNodenode;

//系统的盘符的节点

File[]roots=File.listRoots();

//列出可用的文件系统盘符数组

"

//构造根节点,后面加空格为了增大左面板初始面积

top = new DefaultMutableTreeNode("

我的电脑

//遍历所有盘符,增加到top的孩子节点里

for(intk=0;

k<

roots.length;

k++)

node=newDefaultMutableTreeNode(newFileNode(roots[k]));

top.add(node);

node.add(newDefaultMutableTreeNode(newBoolean(true)));

//在构造的孩子节点下构造初始子节点,节点为true,使成为能扩展状态

}

m_model=newDefaultTreeModel(top);

//设置默认模式根节点为topm_tree=newJTree(m_model);

//按m_model模

式构造文件树

m_tree.putClientProperty("

JTree.lineStyle"

"

Angled"

//设置客户区样

m_tree.addTreeExpansionListener(newDirExpansionListener());

//设置树展开事件响应处理

m_tree.addTreeSelectionListener(newDirSelectionListener());

//设置树选择事件响应处理

为单选编辑

m_tree.getSelectionModel().setSelectionMode(

TreeSelectionModel.SINGLE_TREE_SELECTION);

//设置选择模式m_tree.setEditable(false);

//设置树为不可

//对窗口的界面进行处理

JPanelleftPanel=newJPanel();

//左边区域的pane的设置leftPanel.setLayout(newBorderLayout());

JScrollPanescroll_tree=newJScrollPane(m_tree);

//给树形区

域添加滚动条

leftPanel.add(scroll_tree,BorderLayout.CENTER);

//加入文件树到左区域

leftPanel.add(m_refreshBtn,BorderLayout.SOUTH);

//添加刷新

按钮

leftPanel.add(m_aboutBtn,BorderLayout.NORTH);

//添加关于

JPanelringhtPanel=newJPanel();

//右边区域的pane的设置ringhtPanel.setBackground(Color.WHITE);

ringhtPanel.setLayout(newBorderLayout());

JScrollPanescroll_text=newJScrollPane(m_rightTextArea);

//给本文区

ringhtPanel.add(scroll_text,BorderLayout.CENTER);

//加入文本显示到右区域

ringhtPanel.add(m_openBtn,BorderLayout.NORTH);

//加入打开按钮ringhtPanel.add(m_compressBtn,BorderLayout.SOUTH);

//加入压缩按钮

JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,leftPanel,ringhtPanel);

//垂直分割左右pane

getContentPane().add(split,BorderLayout.CENTER);

//分割pane置中

getContentPane().add(m_PathDisplay,BorderLayout.SOUTH);

//路径显示置于底部

setSize(800,600);

//设置窗口大小

setLocation(200,100);

//设置位置setVisible(true);

//显示窗口

@Override

///////////////////////////////////

//通用事件处理

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstubif(e.getSource()==this.m_openBtn)//打开文件

if(this.m_szFileExcutePath==null)

JOptionPane.showMessageDialog(null,

盘符、文件夹等没有系统文件后缀关联,所以无法打开"

警告"

JOptionPane.WARNING_MESSAGE);

return;

try{

Runtime.getRuntime().exec("

cmd /c start"

+this.m_szFileExcutePath);

}catch(IOExceptione1){

//TODOAuto-generatedcatchblocke1.printStackTrace();

if(e.getSource()==this.m_compressBtn)//压缩文件

if(m_szFileExcutePath==null)

盘符、文件夹等没有系统文件后缀,不支持压缩操作"

else

newCompress(m_szFileExcutePath);

if(e.getSource()==this.m_refreshBtn)//刷新文件夹树

//遍历所有盘符,增加到top的孩子节点里for(intk=0;

//在构造的孩子节点下构造初始子节点,节点为true,使成为能扩展状

//重新构造树形模式m_tree.setModel(m_model);

m_szFileExcutePath=null;

//清空当前路径m_PathDisplay.setText(null);

//清空路径显示框m_rightTextArea.setText(null);

//清空右方文本区域

if(e.getSource()==this.m_aboutBtn)//关于窗口

作者:

"

JOptionPane.DEFAULT_OPTION);

/**********************************************************

*用于响应树节点展开事件

*内部事件响应类

classDirExpansionListenerimplementsTreeExpansionListener

//树展开事件

publicvoidtreeExpanded(TreeExpansionEventevent)

//TODOAuto-generatedmethodstub

finalDefaultMutableTreeNodenode=getTreeNode(event.getPath());

//要展开的树节点

finalFileNodefnode=getFileNode(node);

//转换为要展开的文件节点

//多线程BFS遍历生成所有子节点Threadrunner=newThread()

publicvoidrun()

if(fnode!

=null&

&

fnode.expand(node))//如果节点不为空,还有可扩展节点(子节点)

Runnablerunnable=newRunnable()

m_model.reload(node);

//在模式里刷新本子

};

到线程队列

SwingUtilities.invokeLater(runnable);

//把runnable加入

runner.start();

//树折叠事件(不处理)

publicvoidtreeCollapsed(TreeExpansionEventevent)

*用于响应树节点选中事件

classDirSelectionListenerimplementsTreeSelectionListener

publicvoidvalueChanged(TreeSelectionEventevent)

的树节点

DefaultMutableTreeNodenode=getTreeNode(event.getPath());

//选中

FileNodefnode=getFileNode(node);

//转换

为选中的文件节点

=null) //判断选中的是否为有效文件节点

m_PathDisplay.setText(fnode.getFile().getAbsolutePath());

//在底部显示绝对路径

Filef=fnode.getFile();

longlen=f.length();

Stringf_Attribute="

属性:

\n"

;

//文件的属性字符串

+"

if(f.isFile())f_Attribute+="

文件名称:

+f.getName()

elsef_Attribute+="

文件夹名:

+f.getName()+"

f_Attribute+="

文件路径:

+f.getPath()+"

if(f.isFile())

f_Attribute+="

文件长度:

+len+"

字节\n"

式对象

DateFormatdf=DateFormat.getDateInstance();

//创建时间格

f_Attribute += "

修改时间:

+

df.format(f.lastModified())+"

读"

if(f.canRead())f_Attribute+="

当前权限:

+"

不可读"

if(f.canWrite())f_Attribute+="

可写"

不可写"

FileReaderfr=null;

fr=newFileReader(f.getPath());

}catch(FileNotFoundExceptione){

//TODOAuto-generated

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2