Java课程设计

Posted dialogbox

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java课程设计相关的知识,希望对你有一定的参考价值。

一、项目要求

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

二、团队成员介绍

姓名:张胜龙
班级:计科20-3
学号:202003010085

三、项目gitee地址

https://gitee.com/jkliker/java-course-design/tree/master/

四、项目git提交记录截图

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

l 思维导图

Ⅱ UML图

六、项目运行截图

  • jar包

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

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

  • 实现查看文件的属性

  • 实现文件的重命名

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

七、项目关键代码

统计文件数目方法

//统计文件夹的数目
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

  • 对扫描后的项目进行更正

以上是关于Java课程设计的主要内容,如果未能解决你的问题,请参考以下文章

Android课程---Android Studio使用小技巧:提取方法代码片段

JAVA课程设计 彩票号码产生器

JAVA课程设计 彩票号码产生器

Java课程设计---贪吃蛇大作战

java课程设计

课程设计必备之数据库操作代码模板