文件选择器(JFileChooser)

来源:互联网 发布:名字分析软件 编辑:程序博客网 时间:2024/05/16 07:45
 

文件选择器(JFileChooser)


文件选择功能是界面程序中一个基本功能,需要实现文件选择的功能,即点击“打开文件”按钮,可以在本地选择文件,并把文件路径放在文本域中。如图所示:

(1)选择文件:要实现此功能,前提当然是先设置文本域和按钮,要点是在点击“打开文件”时, 激发文件选择事件,此事件需要自己动手去写,在这里取名为FileChooserListener。它继承ActionListener。实现是用JFileChooser实现的,然后把路径放在文本域中。如下代码所示:

[java] view plaincopy
  1. public class FileChooserListener implements ActionListener  
  2. {  
  3.     private JTextField tf;  
  4.         // 默认为当前路径  
  5.     private static String filePath = ".";  
  6.     public FileChooserListener(JTextField tf)  
  7.     {  
  8.         this.tf = tf;  
  9.     }  
  10.     public void actionPerformed(ActionEvent e)  
  11.     {  
  12.         JFileChooser fc = new JFileChooser();  
  13.         File dir = new File(filePath);  
  14.             // 打开的窗口路径为当前路径  
  15.         fc.setCurrentDirectory(dir);  
  16.         fc.setDialogTitle("打开文件");  
  17.                 // 添加文件过滤  
  18.         FileNameExtensionFilter filter1 = new FileNameExtensionFilter(".xls""xls");  
  19.         fc.addChoosableFileFilter(filter1);  
  20.         FileNameExtensionFilter filter2 = new FileNameExtensionFilter(".xml""xml");  
  21.         fc.addChoosableFileFilter(filter2);  
  22.         // 设置文件过滤  
  23.         fc.setFileFilter(fc.getAcceptAllFileFilter());  
  24.         int intRetVal = fc.showOpenDialog(new JFrame());  
  25.         // 已经选择了文件  
  26.         if (intRetVal == JFileChooser.APPROVE_OPTION)  
  27.         {  
  28.             // 取得已选择文件的路径  
  29.             filePath = fc.getSelectedFile().getPath();  
  30.             // 在文本域中显示此路径  
  31.             tf.setText(filePath);  
  32.         }  
  33.     }  
  34. }  

代码中,构造函数中参数是JTextField,它是存放文件路径的地方。创建JfileChooser后,setCurrentDirectory设置打开窗口默认的文件夹。FileNameExtensionFilter用于文件过滤,showOpenDialog打开窗口。打开窗口,选择文件后,返回一个整型数据,如果是JFileChooser.APPROVE_OPTION,则表明已经选择了文件,getSelectedFile().getPath();则可以取得文件的路径。

(2)选择目录:如果不选择文件,只选择文件所在目录,则只需利用setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY)则可。如下代码所示:

[java] view plaincopy
  1. // 设置只选择文件目录  
  2. fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);  

(3)选择多个文件:如果想选择多个文件,则可以setMultiSelectionEnabled;参数为true则可。如下代码所示:

[java] view plaincopy
  1. // 设置可选择多个文件  
  2. fc.setMultiSelectionEnabled(true);  
0 0