文件选择器(JFileChooser)

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

文件选择

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

<textarea cols="75" rows="15" name="code" class="java">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); } } } </textarea>

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

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

<textarea cols="50" rows="4" name="code" class="java">// 设置只选择文件目录 fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); </textarea>

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

<textarea cols="50" rows="3" name="code" class="java">// 设置可选择多个文件 fc.setMultiSelectionEnabled(true);</textarea>

 

你可能感兴趣的:(xml,String,File,filter,Class)