java课程设计——简易资源管理器(个人博客)

一.个人信息
姓名:李徽
班级:计科20-1
学号:202003010021

二.项目功能结构图

在这里插入图片描述

三.个人负责模块和任务说明

窗口框架,预览文件,文件重命名,统计文件,复制文件,团队博客

四.负责模块功能的关键代码

// 窗口框架
public class FileFrame extends JFrame { //继承JFrame类
    private FileListPanel filelistShow;//文件列表面板
    private PathPanel pathPanel;//路径显示面板和按钮
    private String mouseSelectFileName;
    private MouseRightPopup popup;//p553 弹出菜单组件

    public FileFrame() {
        //类实例域初始化-

        filelistShow = new FileListPanel();//文件窗口
        pathPanel = new PathPanel();//文件面板
        mouseSelectFileName = new String("");
        popup = new MouseRightPopup();//菜单组件

        //设置窗口关闭方法
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭时退出程序;

        //设置窗口位置和大小(由系统平台决定)
        Toolkit kit = Toolkit.getDefaultToolkit();// Toolkit.getDefaultToolkit()获取获取显示器屏幕大小
        Dimension screen = kit.getScreenSize();//封装了一个构件的高度和宽度,获得屏幕大小
        this.setSize(screen.width / 2, screen.height / 2);//设置大小
        this.setLocationByPlatform(true);//将程序的位置交给系统选择(位置由系统确定)

        //实现路径文本框可以直接控制目录跳转
        pathTextToFile();

        //实现鼠标控制文件显示列表和右键显示菜单
        mouseControlFilelist();

        //实现右键菜单功能
        mouseRightMenuFunction();

        //控制组件摆放位置
        this.add(filelistShow, BorderLayout.CENTER);//边界布局
        this.add(pathPanel, BorderLayout.NORTH);//窗体布局
    }

在这里插入图片描述

    //复制文件
    public boolean copyWindow(String path) {
    	//消息提示框
        String inputContent = JOptionPane.showInputDialog(FileFrame.this,"请输入你的目标地址","");
        try {
            java.io.File fileIn = new java.io.File(path); //用路径名生成源文件
            java.io.File fileOut = new java.io.File(inputContent + "\\" + mouseSelectFileName); //用路径名生成目标文件
            FileInputStream fin = new FileInputStream(fileIn); //得到文件输入流
            //对文件数据以字节的形式进行读取操作
            FileOutputStream fout = new FileOutputStream(fileOut); //得到文件输出流
            byte[] bytes = new byte[1024]; //初始化字节数组,用于缓冲
            int c;
            while ((c = fin.read(bytes)) != -1) { //如果文件未读完
                fout.write(bytes, 0, c); //将读取的字节数组写入目标文件输出流中
            }
            fin.close(); //关闭输入流
            fout.close(); //关闭输出流
            return true;
        } 
        //代码区如果有错误,就会返回所写异常的处理。
        catch (Exception e) {
            return false;
        }

    }

在这里插入图片描述

//文件重命名
    public boolean fileRemae(String path) {
        String inputContent = JOptionPane.showInputDialog(   //JOptionPane消息提示框
                FileFrame.this, "请输入新的名字","" );
        File f = new File(path);
        File fn = new File(pathPanel.getPathInput() + "\\" + inputContent);//fn 文件路径
        f.renameTo(fn);//将f重命名并移动到fn的路径
        return true;
    }
   

在这里插入图片描述

//	    预览文件
    public boolean readFile(String path) {
        JFrame jFrame = new JFrame("预览");
        jFrame.setSize(700, 600);//设置大小
        jFrame.setLocationRelativeTo(FileFrame.this);//设置位置
        jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//释放当前窗口
        JTextArea textshow;
        textshow = new JTextArea(30, 58);//30行50列 
        jFrame.add(new JScrollPane(textshow));//加入面板
        try {
            File file = new File(path);//将通过textInput获取的字符串创建一个文件
            //getText()方法,获取对象的文本内容
            FileReader in = new FileReader(file);//字符输入流
            BufferedReader in2 = new BufferedReader(in);//BufferedReader类从字符输入流中读取文本
            String s = null;
            while ((s = in2.readLine()) != null) {//行内容不为零
                textshow.append(s + "\n");//append()方法,向当前字符串追加字符,读到每行结尾添加一个换行符,后呈现
            }
            in.close();//关闭字符流
            in2.close();
        } catch (IOException exp)//处理异常
        {
            textshow.append(exp.toString());
        }
        jFrame.setVisible(true);//设置为可显示
        return true;
    }

在这里插入图片描述

     //统计文件夹内的文件数
    public boolean countFiles(String path) {
        int wenjian = 0;
        int wenjianjia = 0;
        File file = new File(path);
        String[] files = file.list();//创建列表数组
        for (String file1 : files) {//遍历,一个个赋值给file1
            File fileS = new File(path + "\\" + file1);
            if (fileS.isDirectory())//如果是文件夹
                wenjianjia++;
            else//不然就是文件
                wenjian++;
        }
//	        System.out.println("文件夹为"+wenjian+"文件数为"+wenjianjia);
        JOptionPane.showMessageDialog(
                FileFrame.this,
                "该文件夹内有文件" + wenjian + "个,文件夹有" + wenjianjia + "个",
                "统计",
                JOptionPane.INFORMATION_MESSAGE
        );
        return true;
    }

在这里插入图片描述

五.个人感想

通过这次课程设计,让我深深的感到自己的不足,我在今后的时间里会更加努力!

六.团队博客地址

https://blog.csdn.net/weixin_51406688/article/details/118107609?spm=1001.2014.3001.5501

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值