filechooser.java~10~

来自「用java编写的压缩程序」· JAVA~10~ 代码 · 共 88 行

JAVA~10~
88
字号
package compress;
import java.io.File;
import java.util.Enumeration;
import java.util.Hashtable;
import java.awt.Toolkit;
import javax.swing.filechooser.*;
import javax.swing.plaf.*;
import javax.swing.*;
public class FileChooser extends JFileChooser {//此类为打开文件时的弹出窗口
    MyFileFilter filter;
    public FileChooser() {
        this.initial();
    }
    void initial() {
        filter = new MyFileFilter();
        this.setSize(600, 400);
        double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
        double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
        this.setLocation((int) (width - this.getWidth()) / 2,
                         (int) (height - this.getHeight()) / 2);
    }
}
class MyFileFilter extends FileFilter {
    private static String TYPE_UNKNOWN = "Type Unknown";
    private static String HIDDEN_FILE = "Hidden File";
    private Hashtable filters = null;
    private String description = null;
    private String fullDescription = null;
    private boolean useExtensionsInDescription = true;
      public MyFileFilter() {
        this.filters = new Hashtable();
    }
    public boolean accept(File f) {
        if (f != null) {
            if (f.isDirectory()) {
                return true;
            }
            String extension = getExtension(f);
            if (extension != null && filters.get(getExtension(f)) != null) {
                return true;
            }
            ;
        }
        return false;
    }


    public 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;
    }


    public String getDescription() {
        if (fullDescription == null) {
            if (description == null || isExtensionListInDescription()) {
                fullDescription = description == null ? "(" :
                                  description + " (";

                Enumeration extensions = filters.keys();
                if (extensions != null) {
                    fullDescription += "." + (String) extensions.nextElement();
                    while (extensions.hasMoreElements()) {
                        fullDescription += ", ." +
                                (String) extensions.nextElement();
                    }
                }
                fullDescription += ")";
            } else {
                fullDescription = description;
            }
        }
        return fullDescription;
    }

    public boolean isExtensionListInDescription() {
        return useExtensionsInDescription;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?