• 第五次作业


         这次作业要求以图形用户界面输出文件列表,老师已经讲解了大部分,我只做了很小的添加和改进。还是不足很多吧。

    package proj2;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.ScrollPane;
    import java.io.File;
    
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JScrollPane;
    import javax.swing.ListSelectionModel;
    
    public class FileUtils {
    
    /**
    * 列出指定目录下的所有文件和子目录的名称
    * @throws IllegalAccessException 
    * 
    */
    public static void listDirectory(File dir) throws IllegalAccessException{
    //判断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[] fileName = dir.list();
    for(String s :fileName){
    System.out.println(dir + "\"+ s);
    }
    
    System.out.println();
    //使用listFiles()方法实现只列出目录下的所有文件名称
    File[] files = dir.listFiles();
    for(File file:files){
    //如果是文件,则输出
    if(file.isFile()){
    System.out.println(file);
    }
    }
    
    JFrame a =new JFrame("文件目录");
    a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    a.setLayout(new BorderLayout());
    JLabel northLabel = new JLabel("files list");
    a.add(northLabel,BorderLayout.NORTH);
    
    JList list = new JList(files);
    list.setForeground(new Color(140,180,220));
    list.setBackground(Color.blue);
    list.setSelectionBackground(new Color(100,80,150));
    list.setSelectionForeground(new Color(140,180,220));
    
    JScrollPane sp = new JScrollPane(list);
    // 
    a.add(sp,BorderLayout.CENTER);
    a.setBounds(400,200,400,200);
    
    a.setVisible(true);
    }
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    
    try {
    FileUtils.listDirectory(new File("D:\"));
    } catch (IllegalAccessException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    
    }
    
    }
    View Code

  • 相关阅读:
    Harvest of Apples (HDU多校第四场 B) (HDU 6333 ) 莫队 + 组合数 + 逆元
    BZOJ4383/LuoGuP3588 Pustynia/PUS 线段树建图优化
    初识splay
    nowcoder牛客wannafly挑战赛20
    初识树链剖分
    二维数据结构---线段树
    初识莫队——小Z的袜子
    kuangbin带我飞QAQ 并查集
    十个二分九个错?教你如何优雅地写二分查找
    Codeforces Round #436 (Div. 2) E. Fire(dp 记录路径)
  • 原文地址:https://www.cnblogs.com/vanilla1996/p/5396664.html
Copyright © 2020-2023  润新知