功能较完善的文件管理器
一、设计任务与目标
实现一个能够对文件和文件夹进行各种基本操作的文件管理器窗口程序。 功能要求:
1)新建、删除、修改、复制、黏贴文件功能 2)新建、删除、修改目录
3)具有对某个文件进行压缩打包的功能 4)要求实现多文档界面
5)要求界面美观、功能布局合理。
二、方案设计与论证
根据题目的要求,我们想通过JTree来实现遍历文件夹并建成目录树,JList来实现多行显示,界面方面我们准备做成双栏式的,左边目录数,右边文件列表,通过阅读javax.swing.JFileChooser类的功能原码来逐步完善,新建、删除、复制等功能我们会通过java.io.File来了解文件的底层操作来完成。
三、程序框图或流程图,程序清单与调用关系
main主函数构造函数scaner()MainFrametreeExpandtreeCollapvalueChang类ed树侦听器sed树折叠ed树值变化 swap交换actionPerfsortElemensortElemenaddlist右边ormed事件监FileNode类ts排序ts排序文件列表听Clock类构造函数MainFrame()mousePressmouseClicked鼠标监听ed鼠标监听MainPanel类IOTest类构造函数构造函数构造函数ZIPUtil类newFolder(delFolder(delFile()))构造函数构造函数createTreeZhantie()Model() addActionListener监听器构造函数delAllFile()
四、全部源程序清单
/////////////// scaner类///////////////////// import javax.swing.*;
import javax.swing.event.*; import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*; import java.io.*; import java.util.*;
public class scaner extends JFrame
implements ActionListener,TreeExpansionListener,TreeSelectionListener {
/** * */
private static final long serialVersionUID = -6653169472316161951L; //定义常量
JTree jtree = new JTree(createTreeModel()); JPanel JPsub=new JPanel(new GridLayout(0,1)); JPanel road=new JPanel(new BorderLayout()); JFrame f,ff;
JSplitPane JSP; //可滚动 JButton sure,ok;
JLabel status=new JLabel(\); JLabel shijian,size;
JTextField renamest,zipname;
GregorianCalendar time = new GregorianCalendar(); int hour = time.get(Calendar.HOUR_OF_DAY); int min = time.get(Calendar.MINUTE); int second = time.get(Calendar.SECOND); Vector
JMenuItem popupMenu_Copy, popupMenu_Delete,newfiles,p_zip; JMenuItem copy,del; JMenu m1, m2, m3;
JMenuItem newItem, exitItem, zuozhe, help; JButton btt; JList F_list; PopupMenu menu;
MenuItem b_open, b_copy, b_jiantie, b_del,newfile,b_rename,b_Zip,newfload; Object[] dizhi; FileDialog fd; long sizes; String newname;
//构造函数
public scaner() {
super(\文件管理器\); //设置窗口大小
Container container = getContentPane();///时钟布局 int i = 400; int j = 100;
setBounds(i,j,840,580);
addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent windowevent) {
System.exit(0); } } );
//////////////////////////////////////////////////////////// m1 = new JMenu(\文件\) ; m2 = new JMenu(\编辑\) ; m3 = new JMenu(\帮助\) ;
JMenuBar menuBar = new JMenuBar() ; menuBar.add(m1) ; menuBar.add(m2) ; menuBar.add(m3) ;
newItem = new JMenuItem(\新建文件\) ; exitItem = new JMenuItem(\退出\) ;
// 此时定义完了四个菜单的选项,定义完成之后,增加快捷键 newItem.setMnemonic('N') ; exitItem.setMnemonic('E') ;
newItem.setAccelerator(KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK)) ;
exitItem.setAccelerator(KeyStroke.getKeyStroke('E',java.awt.Event.ALT_MASK)) ;
newItem.addActionListener(this); ///注册监听器 exitItem.addActionListener(this); m1.add(newItem) ; m1.add(exitItem) ;
/////////////////////////////
copy = new JMenuItem(\复制\) ; del = new JMenuItem(\删除\) ;
// 此时定义完了两个菜单的选项,定义完成之后,增加快捷键
copy.setMnemonic('C') ;
copy.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.ALT_MASK)) ;
m2.add(copy) ; m2.add(del) ;
copy.addActionListener(this); del.addActionListener(this);
/////////////////////////
zuozhe = new JMenuItem(\关于\) ; help = new JMenuItem(\帮助\); m3.add(help); m3.add(zuozhe);
zuozhe.addActionListener(this); help.addActionListener(this); ////////////////////////////////
setJMenuBar(menuBar) ; // 菜单是需要通过此方法增加的 setVisible(true) ;
//frame.setSize(700,500) ; setLocation(300,200);
//////////////////////////////////////////////////// // -------------------创建右键弹出菜单 popupMenu = new JPopupMenu();
newfiles=new JMenuItem(\新建文件夹\);
popupMenu_Copy = new JMenuItem(\复制(C)\, 'C');
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库功能较完善的文件管理器java课程设计报告毕业设计(论文)在线全文阅读。
相关推荐: