zoukankan      html  css  js  c++  java
  • 课程设计---实现简易文件资源管理器

    一、小组成员介绍

    小组成员 介绍 主要工作
    许意杰 组长 GUI设计,程序整合
    尤志峰 组员 功能设计:创建菜单栏,创建工具条,新建文件命令,打开文件命令,保存命令
    陈浩 组员 功能设计:退出命令,剪切命令,拷贝命令,粘贴命令,关于选项命令

    二、项目架构、主要流程以及UML类图

    项目架构:

    主要流程:

    UML图

    三、程序演示

    1.查找文件功能

    2.实现文件的拷贝与粘贴功能

    3.实现文本类的预览功能

    4.实现文件的重命名功能

    5.实现对某个文件夹进行统计功能

    四、程序源代码

    1.窗口设计

    在主接口中设计一个EditorDemo容器继承自JFrame,并在其中加入菜单栏、工具栏和一个文本域控件。 
    public class EditorDemo extends JFrame
    JTextPane textPane = new JTextPane(); //创建文本窗格,编辑窗口
    JFileChooser filechooser = new JFileChooser(); //文件选择器
    setJMenuBar(createJMenuBar(actions));  //设置菜单栏
    Container container = getContentPane(); //得到容器
        container.add(createJToolBar(actions), BorderLayout.NORTH); //工具栏
    container.add(textPane, BorderLayout.CENTER); //增加文本窗格 
    

    2.功能设计

    在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。点击不同菜单项时,显示不同接口。
    private JMenuBar createJMenuBar(Action[] actions)  //创建菜单栏
    	JMenuBar menubar = new JMenuBar(); //实例化菜单栏
    	JMenu menuFile = new JMenu("文件(F)"); //实例化菜单
      JMenu menuEdit = new JMenu("编辑(E)");
    	JMenu menuFormat = new JMenu("格式(O)");
    	JMenu menuFind = new JMenu("查找(V)");
    	JMenu menuAbout = new JMenu("帮助(H)");
    	menuFile.add(new JMenuItem(actions[0])); //增加新菜单项
    	menuFile.add(new JMenuItem(actions[1]));
    	menuFile.add(new JMenuItem(actions[2]));
    	menuFile.addSeparator();
    	menuFile.add(new JMenuItem(actions[7]));
    	menuEdit.add(new JMenuItem(actions[3]));
    	menuEdit.add(new JMenuItem(actions[4]));
    	menuEdit.add(new JMenuItem(actions[5]));
    	menuAbout.add(new JMenuItem(actions[6]));
    	menubar.add(menuFile); //增加菜单
    	menubar.add(menuEdit);
    	menubar.add(menuFormat);
    	menubar.add(menuFind);
    	menubar.add(menuAbout);
    	return menubar; //返回菜单栏
    

    3.加入工具栏的功能键,通过工具栏实现对文本的基本操作。

    Action[] actions =  //Action数组,各种操作命令
    				new NewAction(),
    				new OpenAction(),
    				new SaveAction(),
    				new CutAction(),
    				new CopyAction(),
    				new PasteAction(),
    				new AboutAction(),
    				new ExitAction(),
    private JToolBar createJToolBar(Action[] actions) //创建工具条
    	JToolBar toolBar = new JToolBar(); //实例化工具条	 
    	JButton bt = new JButton(actions[i]); //实例化新的按钮
    	toolBar.add(bt); //增加按钮到工具栏
    
    

    4.对每个菜单项进行注册监听。点击不同功能键时,实现不同的操作,显示不同的窗口。

    class NewAction extends AbstractAction { //实现新建文件命令功能
    		public NewAction() {
    			super("新建文本");}
    		public void actionPerformed(ActionEvent e) {
    			textPane.setDocument(new DefaultStyledDocument()); //清空文档
    		}}
    class OpenAction extends AbstractAction { //实现打开文件命令功能
    		public OpenAction() {
    			super("打开文本");}
    		public void actionPerformed(ActionEvent e) {
    			int i = filechooser.showOpenDialog(EditorDemo.this); 
                     //显示打开文件对话框
    			if (i == JFileChooser.APPROVE_OPTION) { //点击对话框中打开选项
    				File f = filechooser.getSelectedFile(); //得到选择的文件
    			try {
    				InputStream is = new FileInputStream(f); //得到文件输入流
    					textPane.read(is, "d"); //读入文件到文本窗格
    				} catch (Exception ex) {
    					ex.printStackTrace();  //输出出错信息
    				}}}}
    	class SaveAction extends AbstractAction {  //实现保存文本命令
    		public SaveAction() {
    			super("保存文本");}
    		public void actionPerformed(ActionEvent e) {
    			int i = filechooser.showSaveDialog(EditorDemo.this); 
    //显示保存文件对话框
    			if (i == JFileChooser.APPROVE_OPTION) {  //点击对话框中保存按钮
    				File f = filechooser.getSelectedFile(); //得到选择的文件
    				try {
    					FileOutputStream out = new FileOutputStream(f);  
    //得到文件输出流
    					out.write(textPane.getText().getBytes()); //写出文件
    				} catch (Exception ex) {
    					ex.printStackTrace(); //输出出错信息	}}}}
    class ExitAction extends AbstractAction { //实现退出命令
    		public ExitAction() {
    			super("退出系统");}
    		public void actionPerformed(ActionEvent e) {
    			System.exit(0);  //退出程序}}
    class CutAction extends AbstractAction {  //实现剪切命令
    		public CutAction() {
    			super("剪切");}
    		public void actionPerformed(ActionEvent e) {
    			textPane.cut();  //调用文本窗格的剪切命令}}
    class CopyAction extends AbstractAction {  //实现拷贝命令
    		public CopyAction() {
    			super("拷贝");}
    		public void actionPerformed(ActionEvent e) 
    {textPane.copy();  //调用文本窗格的拷贝命令
    class PasteAction extends AbstractAction {  //实现粘贴命令
    public PasteAction() {
    			super("粘贴");}
    		public void actionPerformed(ActionEvent e) {
    			textPane.paste();  //调用文本窗格的粘贴命令}}
    class AboutAction extends AbstractAction { //关于版本命令
    		public AboutAction() {
    			super("版本");}
    		public void actionPerformed(ActionEvent e) {
    String str="简易记事本
    
    版本:1.0
    作者:许意杰,陈浩,尤志锋
    主要功能:实现简单文本编辑。";主要功能:实现简单文本编辑。 
    		JOptionPane.showMessageDialog(EditorDemo.this, str); //显示软件信息
    		}}
    
  • 相关阅读:
    973. K Closest Points to Origin
    919. Complete Binary Tree Inserter
    993. Cousins in Binary Tree
    20. Valid Parentheses
    141. Linked List Cycle
    912. Sort an Array
    各种排序方法总结
    509. Fibonacci Number
    374. Guess Number Higher or Lower
    238. Product of Array Except Self java solutions
  • 原文地址:https://www.cnblogs.com/yjac/p/14342760.html
Copyright © 2011-2022 走看看