文件选择功能是界面程序中一个基本功能,需要实现文件选择的功能,即点击“打开文件”按钮,可以在本地选择文件,并把文件路径放在文本域中。如图所示:
(1)选择文件:要实现此功能,前提当然是先设置文本域和按钮,要点是在点击“打开文件”时, 激发文件选择事件,此事件需要自己动手去写,在这里取名为FileChooserListener。它继承ActionListener。实现是用JFileChooser实现的,然后把路径放在文本域中。如下代码所示:
[java]
view plain
copy
- public class FileChooserListener implements ActionListener
- {
- private JTextField tf;
- // 默认为当前路径
- private static String filePath = ".";
- public FileChooserListener(JTextField tf)
- {
- this.tf = tf;
- }
- public void actionPerformed(ActionEvent e)
- {
- JFileChooser fc = new JFileChooser();
- File dir = new File(filePath);
- // 打开的窗口路径为当前路径
- fc.setCurrentDirectory(dir);
- fc.setDialogTitle("打开文件");
- // 添加文件过滤
- FileNameExtensionFilter filter1 = new FileNameExtensionFilter(".xls", "xls");
- fc.addChoosableFileFilter(filter1);
- FileNameExtensionFilter filter2 = new FileNameExtensionFilter(".xml", "xml");
- fc.addChoosableFileFilter(filter2);
- // 设置文件过滤
- fc.setFileFilter(fc.getAcceptAllFileFilter());
- int intRetVal = fc.showOpenDialog(new JFrame());
- // 已经选择了文件
- if (intRetVal == JFileChooser.APPROVE_OPTION)
- {
- // 取得已选择文件的路径
- filePath = fc.getSelectedFile().getPath();
- // 在文本域中显示此路径
- tf.setText(filePath);
- }
- }
- }
代码中,构造函数中参数是JTextField,它是存放文件路径的地方。创建JfileChooser后,setCurrentDirectory设置打开窗口默认的文件夹。FileNameExtensionFilter用于文件过滤,showOpenDialog打开窗口。打开窗口,选择文件后,返回一个整型数据,如果是JFileChooser.APPROVE_OPTION,则表明已经选择了文件,getSelectedFile().getPath();则可以取得文件的路径。
(2)选择目录:如果不选择文件,只选择文件所在目录,则只需利用setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY)则可。如下代码所示:
[java]
view plain
copy
- // 设置只选择文件目录
- fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
(3)选择多个文件:如果想选择多个文件,则可以setMultiSelectionEnabled;参数为true则可。如下代码所示:
[java]
view plain
copy
- // 设置可选择多个文件
- fc.setMultiSelectionEnabled(true);