可视化文件系统

package filetools;

import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.util.ArrayList;

public class TFlieSystem {
    static String rootpath ="c:\\";
    FileOPListener fol=new FileOPListener();

    public void showUI(){
        JFrame jf=new JFrame();
        jf.setTitle("文件系统");
        jf.setSize(600,800);
        jf.setLocation(200,200);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        File file=new File(rootpath);
        File[]files=file.listFiles();

        int column = 4;
        int row = (files.length/column) + 1;
        GridLayout gl=new GridLayout(row,column,10,10);
        jf.setLayout(gl);

        ArrayList<String> dirNameList = new ArrayList<>();
        ArrayList<String> fileNameList= new ArrayList<>();

        for (int i=0;i<files.length;i++){
            File f=files[i];
            if (!f.isHidden()) {
                if (f.isDirectory()) {
                    dirNameList.add(f.getName());
                } else {
                    fileNameList.add(f.getName());
                }
            }
        }

        for(int i=0;i < dirNameList.size();i++){
            JButton btn=new JButton(dirNameList.get(i));
            btn.setBackground(Color.WHITE);
            btn.addActionListener(fol);
            btn.setActionCommand(rootpath+"\\"+dirNameList.get(i));
            jf.add(btn);
        }
    for(int i = 0; i < fileNameList.size();i++){
        JLabel jla=new JLabel(fileNameList.get(i));
        jla.setBackground(Color.CYAN);
        jla.setOpaque(true);
        jf.add(jla);
    }
    jf.setVisible(true);
    }

    public static void main(String[]args){
        TFlieSystem tFileSystem =new TFlieSystem();
        tFileSystem.showUI();
    }
}
package filetools;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.File;
import java.util.ArrayList;


public class FileOPListener implements ActionListener {
    @Override
    public void actionPerformed(ActionEvent e) {
        String dirName = e.getActionCommand();
        System.out.println("dirName:"+ dirName);

        File file=new File(dirName);

        showFileDir(file);
    }

    public void showFileDir(File dirFile){
        JFrame jf=new JFrame();
        jf.setTitle(" "+dirFile.getName());
        jf.setSize(800,600);
        jf.setLocation(200,200);
        jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        File[]files=dirFile.listFiles();
        int column = 4;
        int row =(files.length/column)+1;
        GridLayout gl= new GridLayout(row,column,10,10);
        jf.setLayout(gl);

        ArrayList<String> dirNameList = new ArrayList<>();
        ArrayList<String> fileNameList= new ArrayList<>();


        for (int i = 0; i < files.length; i++) {
            File f=files[i];
            if(!f.isHidden()){
                if (f.isDirectory()){
                    dirNameList.add(f.getName());
                }else {
                    fileNameList.add(f.getName());
                }
            }
        }
        for (int i = 0; i < dirNameList.size(); i++) {
            JButton btn=new JButton(dirNameList.get(i));
            btn.setBackground(Color.white);
            btn.setActionCommand(dirFile.getAbsolutePath()+"\\"+dirNameList.get(i));
            jf.add(btn);
            btn.addActionListener(this);
        }
        for (int i = 0; i < fileNameList.size(); i++) {
            JLabel jla=new JLabel(fileNameList.get(i));
            jla.setBackground(Color.CYAN);
            jla.setOpaque(true);
            jf.add(jla);
        }
        jf.setVisible(true);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值