简单文本管理器

该项目实现了文件查找、拷贝、粘贴、预览、重命名及统计功能。用户可以通过指定目录查找文件,并预览文本文件的前100行。此外,还提供了文件属性查看、重命名、删除、复制和粘贴等操作,以及文件夹统计功能,统计文件夹内文件数量。项目使用了右键菜单进行操作,界面友好,易于使用。
摘要由CSDN通过智能技术生成

目录

  • 一、项目要求
  • 二、团队成员介绍
  • 三、项目功能架构图与主要功能流程图
    • [l 思维导图]
    • [Ⅱ UML图]
  • 四、项目运行截图
  • 五、项目关键代码
  • 六、程序的不足和改进之处

一、项目要求

  • 查找文件功能:可以根据指定的目录名与待查找的文件,在指定目录中进行查找,并返回结果。
  • 实现文件的拷贝与粘贴功能。
  • 实现文本类文件(.txt, .java, .ini, .bat, )的预览功能(比如实现对前100行文本在某个小窗口中进行预览)。
  • 实现文件的重命名功能。
  • 实现对某个文件夹进行统计功能(如统计文件夹中文件数目)。

二、团队成员介绍

三、项目功能架构图与主要功能流程图

l 思维导图

img

Ⅱ UML图

img

四、项目运行截图

  • jar包

  • 右键菜单选项(可进行删除、重命名、复制、粘贴、查看属性、统计文件操作)
    img

  • 实现文本类文件的预览功能
    img

  • 实现查看文件的属性
    img

  • 实现文件的重命名

img

  • 对某个目录下的文件进行统计
    img

五、项目关键代码

统计文件数目方法

//统计文件夹的数目
public static int countFileNumber(File directory) {
        int num = 0;
        //若统计文件数目则 .isFile()
        if (!directory.isDirectory()) {
            return 1;
        }
        File[] files = directory.listFiles();
        for (File direc : files) {
            num += countFileNumber(direc);
        }
        return num;
    }

右键弹出菜单

    //右键弹出菜单,显示位置不固定的弹窗
    PopupMenu pop = new PopupMenu();

    MenuItem deleteItem = new MenuItem("Delete");

    MenuItem renameItem = new MenuItem("Rename");

    MenuItem natrueItem = new MenuItem("Attributes");

    MenuItem copyItem=new MenuItem("Copy");

    MenuItem pasteItem=new MenuItem("Paste");

    MenuItem otherItem=new MenuItem("All Have");
    //自定义一个名为root的节点,后面作为根节点创建一棵树  NodeData是自定义节点类。
    DefaultMutableTreeNode root = new DefaultMutableTreeNode(new NodeData(null,"我的电脑"));

设置 Jtree 的样式 , 渲染Component组件的样式

    //重写父类方法
//getTreeCellRendererComponent方法存在于DefaultTreeCellRenderer类。这个类实际上是实现的接口TreeCellRenderer
//将当前树单元格的值设置为 value。如果 sel 为 true,则将单元格作为已选择的单元格进行绘制。如果 expanded 为 true,则当前扩展该节点,如果 leaf 为 true,则该节点表示叶节点,如果 hasFocus 为 true,则该节点当前拥有焦点。

    @Override
    public Component getTreeCellRendererComponent(JTree tree, Object value,

                                                  boolean sel, boolean expanded, boolean leaf, int row,

                                                  boolean hasFocus) {
   

        fsView = FileSystemView.getFileSystemView();//获取FileSystemView的实例

        DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) value;//获取当前节点

        NodeData data = (NodeData) selectedNode.getUserObject();//取得节点的用户对象

        Icon icon = fsView.getSystemIcon(data.f);//Icon为图片

        setLeafIcon(icon);//用于显示叶节点的图标

        setOpenIcon(icon);//用于显示扩展的非叶节点的图标

        setClosedIcon(icon);//设置用于显示无扩展的非叶节点的图标

        return super.getTreeCellRendererComponent(tree, value, sel, expanded,

                leaf, row, hasFocus);

    }

六、程序的不足和改进之处

  • 使用阿里巴巴静态扫描工具对项目进行扫描
    image

img

  • 对扫描后的项目进行更正
    img
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>