Java Swing学习:文件选择框java
Java为文件选择框提供了JFileChooser类API。经过使用该类,能够很方便的现实文件选择对话框。见下例:app
//创建文件选择框对象 JFileChooser fc=new JFileChooser(); //设定文件选择框标题 fc.setDialogTitle("Open class File"); //显示文件选择框,在选择后将结果储存到returnVal变量中 int returnVal = fc.showOpenDialog(app.getFrameInstance()); //若是用户选择了文件,并点击了"Opne/打开"按钮,显示用户选择的文件全名路径, //若是用户点击"Close/关闭"按钮,以及其它方式退出文件选择框,则什么也不作。 if (returnVal == JFileChooser.APPROVE_OPTION){ File file = fc.getSelectedFile(); System.out.println(file.getPath()); }学习
注意在文件选择对话框中,能够进行选择目录的操做,只须要用FileChooser对象的setFileSelectionMode()方法指定其选择模式为目录选择。见下面代码spa
//上例中能够在文件对话框显示语句前加上下面代码,使对话框成为目录选择对话框 fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);对象
在文件选择过程当中,咱们能够为文件选择对话框设置过滤器,有了过滤器的对话框,会用下拉列表的方式将过滤的文件名特征显示在"文件类型"组合框中,并将不符合条件的文件名和目录名过滤掉(不显示)。ip
为一个文件选择对话框设置过滤器须要定义过滤器类,见下例:get
public class ClassFileFilter extends FileFilter{ public boolean accept(File f) { String filename = f.getName(); return filename.endsWith(".class"); } public String getDescription() { return "*.class"; } }it
该类定义了一个过滤Java类文件"*.class"的过滤器。 将它增长到文件选择对话框中,能够过滤出以.class为尾缀的文件。见下面代码:io
fc.addChoosableFileFilter(new ClassFileFilter());class
针对一个对话框,咱们能够为其加装多个过滤器。这里有对过滤器更加诠释的代码: public class ImageFilter extends FileFilter { //Accept all directories and all gif, jpg, tiff, or png files. public boolean accept(File f) { if (f.isDirectory()) { return true; } String extension = Utils.getExtension(f); if (extension != null) { if (extension.equals(Utils.tiff) || extension.equals(Utils.tif) || extension.equals(Utils.gif) || extension.equals(Utils.jpeg) || extension.equals(Utils.jpg) || extension.equals(Utils.png)) { return true; } else { return false; } } return false; } public String getDescription() { return "Just Images"; } } 该过滤器为图像文件过滤器。