功能较完善的文件管理器
一、设计任务与目标
实现一个能够对文件和文件夹进行各种基本操作的文件管理器窗口程序。
功能要求:
1)新建、删除、修改、复制、黏贴文件功能
2)新建、删除、修改目录
3)具有对某个文件进行压缩打包的功能
4)要求实现多文档界面
5)要求界面美观、功能布局合理。
二、方案设计与论证
根据题目的要求,我们想通过JTree来实现遍历文件夹并建成目录树,JList 来实现多行显示,界面方面我
们准备做成双栏式的,左边目录数,右边文件列表,通过阅读javax.swing.JFileChooser类的功能原码来逐步完善,新建、删除、复制等功能我们会通过java.io.File来了解文件的底层操作来完成。
三、程序框图或流程图,程序清单与调用关系
四、全部源程序清单
/////////////// scaner类/////////////////////
import javax.swing.*;
import javax.swing.event.*;
import *;
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 (Calendar.HOUR_OF_DAY);
int (Calendar.MINUTE);
int (Calendar.SECOND);
Vector<String>v;
JToolBar statusBar;
JPopupMenu popupMenu;
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()
java布局管理器
{
public void windowClosing(WindowEvent windowevent)
{
}
}
);
//////////////////////////////////////////////////////////// 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.KeyStroke('N',java.awt.Event. CTRL_MASK));
exitItem.KeyStroke('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.KeyStroke('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');