JAVA作业(5)

本文介绍了一种使用Java实现的方法,该方法能够在图形用户界面(GUI)中读取指定目录下的文件,并将文件名显示出来。此外,还设置了一个下拉菜单供用户选择不同的文件类型,尽管当前还未实现根据所选类型筛选文件的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      通过近期学习,我学会了用程序来读取磁盘内的文件,并将它运行结果显示在自己做的GUI上面,在GUI里还做了一个下拉菜单,里面的写着不同文件的类型,暂时还没有完成通过选择不同类型文件使方框内筛选出各自的文件这个事件处理,但会继续跟进,此次代码如下

import java.awt.BorderLayout;
import java.awt.Color;
import java.io.File;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;


public class Fileutils {

    public static class FileUtils{
        /**
         * 列出指定目录下的所有文件和子目录的名称
         * @throws IllegalAccessException 
         */
    public static void listDirectory(File dir) throws IllegalAccessException{
        
        
        JFrame frm= new JFrame();
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frm.setLayout(new BorderLayout());
        String[] likes ={".txt",".ppt",".jpg",".docx"};
        JComboBox l1=new JComboBox(likes);
        frm.add(l1, BorderLayout.NORTH);          

       
//        JTextArea j1=new JTextArea();

        
        frm.setBounds(500,300,300,400);
        
     
        frm.setVisible(true);
        
        
        
        
        
        //判断File 对象dir 是否存在,使用File类的exists()方法
        if(!dir.exists()){
            //如果不存在,抛出异常
            throw new IllegalAccessException("目录"+dir+"不存在");
        }
        //判断dir是否是目录,使用File类的isDirectory()方法
        if(!dir.isDirectory()){
            //如果dir不是目录,抛出异常
            throw new IllegalArgumentException(dir+"不是目录");
            
        }
        
        //获得指定目录dir 下的文件及子目录并输出(1.list();2.listFiles())
        //使用list()方法来实现
        String[] fileNames = dir.list();
        //第一种输出方式
//        for(String s : fileNames){
//            j1.append(dir+"\\"+s);
//            j1.append("\n");
//            j1.setEditable(false);
//            
//            //System.out.println(dir+"\\"+s);
//        }    
         JList jl =new JList(fileNames);
         jl.setForeground(new Color(140,171,226));
         jl.setBackground(new Color(0,0,0));
         jl.setSelectionBackground(new Color(87,49,134));
         jl.setSelectionForeground(new Color(140,171,226));
         JScrollPane sp=new JScrollPane(jl);
         
//            sp.setViewportView(jl);
//             System.out.println();
        //使用ListFiles()方法实现只列出目录下的所有文件名称
//        sp.setBackground(Color.YELLOW);
        frm.add(sp,BorderLayout.CENTER);
        
        //第二种输出方式
//        File[] files=dir.listFiles();
//        for(File file:files){
//            //如果是文件,则输出
//        
//            if(file.isFile()){
//                j1.append(dir+"\\"+file);
//                j1.append("\n");
//                j1.setEditable(false);    
//            System.out.println(file);
//        }
//            }
//        
    }                
    }
    /**
     * @param args
     */


    public static void main(String[] args) {
        
        // TODO Auto-generated method stub
        try {            
            FileUtils.listDirectory(new File("F:\\壁纸"));
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

}

运行效果图如下:

转载于:https://www.cnblogs.com/jizehui/p/5395100.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值