package MainFrame;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.filechooser.FileSystemView;
import Fileabout.FileList;
import Fileabout.FileNodeOperation;
import Fileabout.FileTree;
//import Event.AboutAuthorEvent;
//import event.AboutExplorerEvent;
import Event.CopyEvent;
import Event.DeleteEvent;
import Event.DoubleClickEvent;
import Event.JZipFilesEvent;
//import Event.ForwardEvent;
//import Event.GoEvent;
import Event.NewFileEvent;
import Event.NewFolderEvent;
import Event.OpenFileEvent;
import Event.PasteEvent;
import Event.RefreshEvent;
import Event.RenameEvent;
//import Event.PropertyEvent;
//import Event.RefreshEvent;
//import Event.RenameEvent;
import Event.ReturnEvent;
import Event.RightClickEvent;
//import Event.SearchEvent;
//import Event.ShortcutKeyEvent;
//import Event.*;
import Event.ZipFilesEvent;
public class MainFrame {
private JScrollPane treeScrollPane = null;
private JScrollPane listScrollPane = null;
private JFrame mainFrame = null;
private JLabel lblAddress = null;
public static JTextField tfdAddress = null;
public static JButton returnButton=null;
public static JButton forwardButton=null;
public static JButton openFile=null;//选中之后用来打开的按钮
public static JButton newFile=null;//新建文件夹按钮
public static JButton refreshButton=null;
public static JTextField searchField=null;
public static JMenu nMenu;
public static JMenuItem oItem;
public static JMenuItem nItem;
public static JMenuItem dItem;
public static JMenuItem mItem;
//public static JMenuItem pItem;
public static JMenuItem xItem;
public static JMenuItem cItem;
public static JMenuItem zItem;
public static JMenuItem zipItem;
public static JMenuItem JzipItem;
public static JMenuItem passwordItem;
public static JMenuItem JpasswordItem;
public static JLabel pLabel=null;
private JToolBar toolBar = null;//JToolBar 提供了一个用来显示常用的 Action 或控件的组件
private JSplitPane pnlMain = null;
private FileSystemView fileSystemView = FileSystemView.getFileSystemView();//列举系统文件夹,获取系统图标
public void show() {
FileNodeOperation fileNodeOperation = new FileNodeOperation();
//文件列表结构
FileList fileSystemList = new FileList(fileNodeOperation);
Icon returnIcon = fileNodeOperation.getIcon("return.png");//返回按钮的添加
returnButton=new JButton(returnIcon);
returnButton.setToolTipText("返回");
returnButton.setBounds(5, 0, 40, 30);
returnButton.setEnabled(false);
returnButton.addActionListener(new ReturnEvent(fileSystemList));// 添加一个返回事件的监听器
Icon refreshIcon = fileNodeOperation.getIcon("refresh.png");//前进按钮的添加
/*forwardButton=new JButton(refreshIcon);
forwardButton.setToolTipText("前进");
forwardButton.setBounds(45, 0, 40, 30);
forwardButton.setEnabled(false);*/
//forwardButton.addActionListener(new ForwardEvent(fileSystemList));
//菜单栏
JMenu fMenu=new JMenu("文件(F)"); //菜单栏中相关的文件栏菜单fMenu
//为这个新建文件设置热键 相当于按下 Alt-F按钮的时候便弹出打开文件选项
//fMenu.setMnemonic(KeyEvent.VK_F);//设置当前模型上的键盘助记符。助记符是某种键,它与外观的无鼠标修饰符(通常是 Alt)组合时(如果焦点被包含在此按钮祖先窗口中的某个地方)将激活此按钮
oItem=new JMenuItem("打开");
oItem.setEnabled(false);
oItem.addActionListener(new OpenFileEvent(fileSystemList));//添加打开文件的监听器
nMenu=new JMenu("新建");
JMenuItem nItem1=new JMenuItem("文件夹");//菜单中的项的实现。菜单项本质上是位于列表中的按钮。当用户选择“按钮”时,将执行与菜单项关联的操作。
nItem1.addActionListener(new NewFolderEvent(fileNodeOperation, fileSystemList));
JMenuItem nItem2=new JMenuItem("文本文档");
nItem2.addActionListener(new NewFileEvent(fileNodeOperation, fileSystemList, "文本文档"));
JMenuItem nItem3=new JMenuItem("Word文档");
nItem3.addActionListener(new NewFileEvent(fileNodeOperation, fileSystemList, "Word文档"));
JMenuItem nItem4=new JMenuItem("Excel文档");
nItem4.addActionListener(new NewFileEvent(fileNodeOperation, fileSystemList, "Excel文档"));
nMenu.add(nItem1);//新建文件的时候涉及到新建不同类型的文件 要把这些都添加到nMenu上去
nMenu.add(nItem2);
nMenu.add(nItem3);
nMenu.add(nItem4);
dItem=new JMenuItem("删除");
dItem.setEnabled(false);
dItem.addActionListener(new DeleteEvent(fileNodeOperation, fileSystemList));//添加删除文件的监听器
mItem=new JMenuItem("重命名");
mItem.setEnabled(false);
mItem.addActionListener(new RenameEvent(fileNodeOperation, fileSystemList));
//pItem=new JMenuItem("属性");
//pItem.setEnabled(false);
//pItem.addActionListener(new PropertyEvent(fileNodeOperation, fileSystemList));
fMenu.add(oItem);
fMenu.add(nMenu);
JMenuItem eItem=new JMenuItem("退出(X)"/*,KeyEvent.VK_X*/);//按下Alt-X快捷键的时候便退出当前运行
eItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);//点击退出按钮的时候 便退出整个程序
}
});
//eItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,ActionEvent.CTRL_MASK));//设置组合键,它能直接调用菜单项的操作侦听器而不必显示菜单的层次结构。 表示当我们输入Ctrl-X的时候便退出 相当于是一个快捷键
fMenu.add(dItem);
fMenu.add(mItem);
//fMenu.add(pItem);
fMenu.add(eItem);
JMenu eMenu=new JMenu("编辑(E)"); //另外一个菜单栏“编辑”
//fMenu.setMnemonic(KeyEvent.VK_E);//按下快捷键crtl-E的时候便弹出编辑选项
xItem=new JMenuItem("剪切");
xItem.setEnabled(false);
xItem.addActionListener(new CopyEvent(fileNodeOperation, fileSystemList,"cut"));
cItem=new JMenuItem("复制");
cItem.setEnabled(false);
cItem.addActionListener(new CopyEvent(fileNodeOperation, fileSystemList));
zItem=new JMenuItem("粘贴");
zItem.setEnabled(false);
zItem.addActionListener(new PasteEvent(fileNodeOperation, fileSystemList));
/*zipItem = new JMenuItem("压缩");
zipItem.setEnabled(false);
zipItem.addActionListener(new ZipFilesEvent(fileNodeOperation, fileSystemList));
//添加压缩实现模块
JzipItem = new JMenuItem("解压");
JzipItem.setEnabled(false);
JzipItem.addActionListener(new JZipFilesEvent(fileNodeOperation, fileSystemList));
//添加解压缩实现模块
passwordItem = new JMenuItem("加密");
passwordItem.setEnabled(false);
//添加加密实现模块
JpasswordItem = new JMenuItem("解密");
JpasswordItem.setEnabled(false);*/
//添加解密实现模块
eMenu.add(xItem);
eMenu.add(cItem);
eMenu.add(zItem);
/*eMenu.add(JpasswordItem);
eMenu.add(passwordItem);
eMenu.add
没有合适的资源?快使用搜索试试~ 我知道了~
Filemanger.zip
共66个文件
class:31个
java:28个
png:4个
5星 · 超过95%的资源 需积分: 50 238 下载量 23 浏览量
2017-08-04
11:09:25
上传
评论 34
收藏 92KB ZIP 举报
温馨提示
运用面向对象程序设计思想,基于Java文件管理和I/O框架,实现基于图形界面的GUI文件管理器。 1、实现文件夹创建、删除、进入。 2、实现当前文件夹下的内容罗列。 3、实现文件拷贝和文件夹拷贝(文件夹拷贝指深度拷贝,包括所有子目录和文件)。 4、实现指定文件的加密和解密。 5、实现指定文件和文件夹的压缩。 6、实现压缩文件的解压。 7、文件管理器具有图形界面。
资源推荐
资源详情
资源评论
收起资源包目录
Filemanger.zip (66个子文件)
Filemanger
bin
MainFrame
MainFrame.class 6KB
MainFrame$JMenuDemo.class 2KB
MainFrame$1.class 704B
Fileabout
FileRenderer.class 1KB
TreeRenderer.class 1KB
SelectedNode.class 2KB
I_Node.class 625B
FileTree$1.class 692B
FileTree.class 4KB
FileNode.class 4KB
FileNodeOperation.class 11KB
FileTreeModel.class 2KB
FileList.class 2KB
FileListModel.class 1KB
Event
CopyEvent.class 2KB
RenameEvent.class 3KB
PasswordOperationEncryptEvent.class 3KB
JZipFilesEvent.class 1KB
NewFileEvent.class 2KB
ZipFilesEvent.class 1KB
DoubleClickEvent.class 5KB
RefreshEvent.class 1KB
NewFolderEvent.class 2KB
OpenFileEvent.class 3KB
ForwardEvent.class 2KB
RightClickEvent.class 6KB
ReturnEvent.class 2KB
JPasswordEvent.class 279B
PasswordOperationDecryptEvent.class 4KB
PasteEvent.class 3KB
DeleteEvent.class 4KB
icon
refresh.png 1KB
return.png 1KB
.settings
org.eclipse.jdt.core.prefs 598B
src
MainFrame
MainFrame.java 14KB
Fileabout
FileNode.java 3KB
FileRenderer.java 838B
FileTree.java 3KB
TreeRenderer.java 687B
FileNodeOperation.java 12KB
FileList.java 2KB
FileListModel.java 1KB
SelectedNode.java 1KB
I_Node.java 1KB
FileTreeModel.java 1KB
Event
DeleteEvent.java 6KB
RefreshEvent.java 970B
NewFileEvent.java 1KB
OpenFileEvent.java 3KB
RenameEvent.java 2KB
PasswordOperationDecryptEvent.java 4KB
PasswordOperationEncryptEvent.java 3KB
PasteEvent.java 3KB
ZipFilesEvent.java 963B
JZipFilesEvent.java 1KB
NewFolderEvent.java 2KB
RightClickEvent.java 11KB
ForwardEvent.java 2KB
JPasswordEvent.java 54B
ReturnEvent.java 2KB
DoubleClickEvent.java 7KB
CopyEvent.java 2KB
icon
refresh.png 1KB
return.png 1KB
.project 386B
.classpath 232B
共 66 条
- 1
我还是一个孩子啊
- 粉丝: 66
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 探索tecreate:软件开发的未来之星.zip
- 打标机项目C#源码连接扫码
- 基于SSM的房屋租赁系统的设计与实现
- xyctf:从入门到精通的实用指南.zip
- mmqrcode1714153659780.png
- Screenshot_2024-04-27-06-08-58-486_com.baidu.xin.aiqicha.jpg
- 基于Javaweb+Tomcat+MySQL的大学生公寓管理系统+sql文件.zip
- 实训作业基于javaweb的订单管理系统源码+数据库+实训报告.zip
- 多机调度问题贪心算法基于最小堆和贪心算法求解多机调度问题.zip
- 基于同态加密技术的匿名电子投票系统源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页