JFileChooser基本使用方法_第1页
JFileChooser基本使用方法_第2页
JFileChooser基本使用方法_第3页
JFileChooser基本使用方法_第4页
JFileChooser基本使用方法_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JFileChooser ()构造一个指向用户默认目录的JFileChooser 。JFileChooser (FilecurrentDirectory)使用给定的File作为路径来构造一个 JFileChooser。setFileSelect ionM ode (int mode)设置JFileChooser,以允许用户只选择文件、只选择目录,或者可选择文件和目录。mode参数:FILES_AND_DIRECTORIES§示显示文件和目录。指示仅显示文件。FILES_ONLYDIRECTORIES ONLY指示仅显示目录。showDialog (Co mponent parent,

2、 Stri ngappro veButt on Text)弹出具有自定义approve按钮的自定义文件选择器对话框。show Open Dialog(Co mponent parent)弹出一个"Open File" 文件选择器对话框。showSaveDialog (Component parent)弹出一个"Save File"文件选择器对话框。setMultiSelectio nEn abled(boolea nb)设置文件选择器,以允许选择多个文件。getSelectedFiles ()如果将文件选择器设置为允许选择多个文件,则返回选中文件的列表(

3、File)。getSelectedFile ()返回选中的文件。p ackage com.lia ng;import java.awt.eve nt.Acti on Eve nt;import java.awt.eve nt.Acti on Liste ner;import java.io.File;import javax.swi ng.JButt on;import javax.sw in g.JFileChooser;import javax.sw in g.JFrame;import javax.swi ng.JLabel;p ublic class FileChooser exte

4、nds JFrame impl eme nts Action Liste nerJButt on open二nu ll;p ublic static void main( Stri ng args) new FileChooser();p ublic FileChooser()open二new JButt on("open");this.add( open);this.setBou nds(400, 200, 100, 100);this.setVisible(true);this.setDefaultClose Op eratio n( JFrame.EXIT_ON_CL

5、OSE);open. addAct ion Liste ner(this);Overridep ublic void acti onP erformed(Acti on Eve nt e) / TODO Auto-ge nerated method stubJFileChooser jfc二new JFileChooser();jfc.setFileSelectio nM ode(JFileChooser.FILES_AND_DIRECTORIES );jfc.showDialog( new JLabel()," 选择");File file二jfc.getSelected

6、File();if(file.isDirectory()System.out.println(”文件夹:"+file.getAbsolutePath();else if(file.isFile()System.out .prin tl n("文件:"+file.getAbsolute Path();System.out. prin tl n(jfc.getSelectedFile().getName();JFileChooser 效果图如下:Ld选择査Ke 口 DocumentsseaCD 口 Tencent FilesD 20伯年个人总结上ocD a b. 1

7、i P Mty E d ipseC racked 2.ziipQ Untitll.cpp全国软件设计0胡化坛训教程血部分M交件类型口:所有袁件其实JFileChooser基本使用方法还是很简单的,下面写两个示例看了就明白了,如果还要如果增加一些功能,我们还可以添加过滤器,只显示过滤后的文件。还可以再保存的时候,JOp tio nPane 提示保存的是目录里已经存在的文件,那么对话框不会关闭,并且弹出一个 用户是否保存文件。打开文件对话框:import java.io.File;import javax.sw in g.JFileChooser;import javax.swi ng.filec

8、hooser.FileFilter;p ublic class FileChooserTest P ublic static void main( Stri ng args) 首先是创建JFileChooser对象,里面带个参数,表示默认打开的目录,这里是默认打开当前文件所在的目录。JFileChooser file = new JFileChooser (".");下面这句是去掉显示所有文件这个过滤器。file.setAcce ptAIIFileFilterUsed(false);II添加excel文件的过滤器file.addChoosableFileFilter( ne

9、w ExcelFileFilter("xls");添加exe文件的过滤器file.addChoosableFileFilter( new ExcelFileFilter("exe");/*使用show Open Dialog()方法,显示出打开选择文件的窗口,当选择了某个文件后,或者关闭此窗口那么都会返回一个整型数值,如果返回的是 0,代表已经选择了某个文件。如果返回1代表选择了取消按钮或者直接关闭了窗口*/ int result = file.show Open Dialog( null);/JFileChooser.APPROVE_OPTION是个整

10、型常量,代表 0。就是说当返回 0的值我们才执行相关操作,否则什么也不做。if(result = JFileChooser.A PP ROVE_ OP TION) /*获得你选择的文件绝对路径。并输出。当然,我们获得这个路径后还可以做很多的事。Stri ng path = file.getSelectedFile().getAbsolute Path();System.out. println(p ath);else System.out .printin(” 你已取消并关闭了窗口!");/*因为我们需要创建一个文件的过滤器,以便让文件对话框显示我们指定的文件。这里我们就以Excel

11、文件和exe文件举例。那么要做到这点我们就需要重写FileFilter类的accept来设置相关的过滤器。这个继承类你可以写成外部类、内部类甚至是main方法使用他,因此这个类也匿名内部类。我这里写成了一个内部类的形式。因为是在要定义成静态的。P rivate static class ExcelFileFilter exte nds FileFilter String ext;excel文件就是 xls,exe 文件是 exe.构造方法的参数是我们需要过滤的文件类型。比如ExcelFileFilter(Stri ng ext) this.ext = ext;/*这个方法就是重写FileFil

12、ter类的方法,参数是 File对象,一般这个参数是如何传入的我们可以不用关心。 他返回一个布尔型。 如果为真表示该文件符合过滤设置,那么就会显示在当前目录下,如果为假就会被过滤掉。P ublic boolea n acce pt(File file) 首先判断该目录下的某个文件是否是目录,如果是目录则返回true,即可以显示在目录下。if (file.isDirectoryO)return true;获得某个文件的文件名,然后使用lastIndexOfO来获得这个文件名字符串中'.'这个字符最后一次出现的位置。并且通过它返回的一个整型来判断该文件是否符合*.*这中文件+文件名

13、'.'字符后面的字符串提取的格式,如果不符合那么就不显示这个文件。如果符合,那么就将出来与过滤的文件名相比较,如果相等则符合该文件格式,并显示出来。如果不相等那么就将其过滤掉。*/Stri ng fileName = file.getName();int in dex = fileName.last In dexOf('.');if (in dex > 0 && in dex < fileName.le ngth() - 1)String exte nsion = fileName.substri ng(i ndex + 1).toL

14、owerCase();if (exte nsion. equals(ext)return true;return false;/*这个方法也是重写FileFilter的方法,作用是在过滤名那里显示出相关的信息。这个与我们过滤的文件类型想匹配,通过这些信息,可以让用户更清晰的明白需要过滤什么类型的文件。*/ p ublic String getDescri pti on() if (ext.equals("xls")return "Microsoft Excel 文件(*.xls)"if(ext.equals("exe")return

15、"可执行文件(*.exe)"returnHH.打开选择文件的对话框就建立好了。但是上面的程序还有瑕疵。因为只有当用户点取消或关闭该窗口时才不会执行任何操作。而如果用户在对话框里输入的文件在当前目录中不存在时,那么窗口依然会关闭, 这时可能就需要在程序中再来做判断。那么可不可以在当用户输入错误的文件名后,窗口不会关闭,而是不执行任何操作或者弹出个对话框提示用户,可以看看大多数window程序中的选择对话框都是这么做的,其实要实现这个功能也不难,只需要再重写一下 JFileChooser 类的 approveSelection()方法就行了。我们将上面的程序做下修改,首先还是需

16、要创建一个继承于JFileChooser 的类,这个类可以写成外部或者内部类,我们这里依然写为内部类,注意,如果需要在静态方法中调用它,则需要将它设置为静态的。P rivate static class MyChooser exte nds JFileChooser MyChooser(Stri ng p ath) super(p ath);/*重载JFileChooser的方法,当在文件选择对话框中,并在当前在当前选择的目录目录下没有找到输入的文件,则对话框不会关闭。直到选择的文件下,才关闭对话框,并执行后面的操作。*/P ublic void app roveSelecti on() Fi

17、le file = new File(getSelectedFile().get Path();if (file.exists()sup er.a pp roveSelect ion();elseJOp tio nPan e.showMessageDialog( null,"你选择的文件不存在,请重新选择!");把上面这段代码添加进刚才的类里面,然后把JFileChooser file = new JFileChooser ("."); 改成JFileChooser file = new MyChooser (".");好了,现在我们

18、就可以在不关闭该对话框的情况下判断用户的输入是否错误了。还可以加入正则表达式,判断用户输入是否符合规定,操作方式按照这个框架来写就没问题了。这里不再赘述。下面是保存对话框!保存对话框:其实保存对话框和打开文件对话框在使用上没什么区别,他们都是使用同一个类JFileChooser,因为在swing当中打开和保存对话框不会做出任何对文件进行处理的功能, 所有的这些功能需要我们自己去实现,而仅仅是提供了1个这样的窗口模型而已。因此这两种窗口其实只是将按钮的标签进行了替换而已。创建他们唯一的区别就是打开是调用showO pen Dialog。方法,保存则是调用 showSaveDialog(),创建形

19、式几乎一样。我们在使用他们的时候就需要分别对这两种窗口的返回后进行不同的处理,设置过滤器是一样的,因此过滤器我们就复用上面打开文件窗口的方法,但是在判断输入保存文件是否在当前目录下时,我们需要做出不一样的处理。当用户输入了与当前目录相同的文件名后,要弹出对话框询问用户是否需要覆盖原文件,如果用户选择否,那么返回保存文件的对话框允许用户继续选择或者输入保存的文件名。F面我只需要修改上面代码的两个地方就能够达到目的。首先将修改一下MyChooser 这个P rivate static class MyChooser exte nds JFileChooser MyChooser(Stri ng p ath) super(p ath);/*同样是覆盖approveSelection方法,首先获得输入文件的路径,然后判断其是否在当前目录下,如果存在,那么弹出对话框询问是否需要覆盖当前文件,如果选择取消,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论