zoukankan      html  css  js  c++  java
  • swing中JFileChooser的用法

    1、基本用法
    JFileChooser dlg = new JFileChooser();
    dlg.setDialogTitle("Open JPEG file");
    int result = dlg.showOpenDialog(this);  // 打开"打开文件"对话框
    // int result = dlg.showSaveDialog(this);  // 打"开保存文件"对话框
    if (result == JFileChooser.APPROVE_OPTION) {
    File file = dlg.getSelectedFile();
    ...
    }

    2、自定义FileFilter

    JDK没有提供默认的文件过滤器,但提供了过滤器的抽象超类,我们可以继承它。

    i

    mport javax.swing.filechooser.FileFilter;
    
    public final class PictureFileFilter extends FileFilter {
    
    private String extension;
    
    private String description;
    
    public PictureFileFilter(String extension, String description) {
    super();
    this.extension = extension;
    this.description = description;
    }
    
    public boolean accept(File f) {
    if (f != null) {
    if (f.isDirectory()) {
    return true;
    }
    String extension = getExtension(f);
    if (extension != null && extension.equalsIgnoreCase(this.extension)) {
    return true;
    }
    }
    return false;
    }
    
    public String getDescription() {
    return description;
    }
    
    private String getExtension(File f) {
    if (f != null) {
    String filename = f.getName();
    int i = filename.lastIndexOf('.');
    if (i > 0 && i < filename.length() - 1) {
    return filename.substring(i + 1).toLowerCase();
    }
    }
    return null;
    }
    
    }

    其实主要就是accept(File f)函数。上例中只有一个过滤器,多个过滤器可参考JDK目录中“demo\jfc\FileChooserDemo\src”中的“ExampleFileFilter.java”


    3、多选

    在基本用法中,设置

    c.setMultiSelectionEnabled(true);

    即可实现文件的多选。

    读取选择的文件时需使用

    File[] files = c.getSelectedFiles();

    4、选择目录

    利用这个打开对话框,不仅可以选择文件,还可以选择目录。

    其实,对话框有一个FileSelectionMode属性,其默认值为“JFileChooser.FILES_ONLY”,只需要将其修改为“JFileChooser.DIRECTORIES_ONLY”即可。

    JFileChooser c = new JFileChooser();
    c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    c.setDialogTitle("Select path to save");
    int result = c.showOpenDialog(PrintDatetime.this);
    if (result == JFileChooser.APPROVE_OPTION) {
    String path = c.getSelectedFile().getAbsolutePath());
    ...
    }
  • 相关阅读:
    用Java求两个字符串所有的公共子序列
    Windows系统上安装logstash和logstash-input-jdbc
    Linux下zip文件的压缩和解压命令
    Linux-root用户下新建用户及为新用户配置密码
    Linux下查看是否安装jdk的命令
    使用git clone命令报错:error: RPC failed; curl 18 transfer closed with outstanding read data remaining
    SCP not a regular file
    常用正则表达式
    Android Wear 兼容
    git diff 配置 meld diff
  • 原文地址:https://www.cnblogs.com/happyPawpaw/p/3046414.html
Copyright © 2011-2022 走看看