如何在java swing中设置Filepicker以仅选择特定文件?例如只有.mo作为扩展名的文件

时间:2013-04-15 09:24:10

标签: java swing jfilechooser

该文件需要是工具的输入文件,以便进一步处理它。

我是java的新手..会得到任何帮助。

这是我目前为filepicker编写的代码。

private void browseButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                              
        // TODO add your handling code here:
        JFileChooser chooser = new JFileChooser();
      chooser.showOpenDialog(null);
      File f = chooser.getSelectedFile();
      String filename = f.getAbsolutePath();
      textField1.setText(filename);
    }                                   

3 个答案:

答案 0 :(得分:3)

也许您想阅读API文档: http://docs.oracle.com/javase/6/docs/api/javax/swing/JFileChooser.html

它的内容如下:

  

以下代码会弹出用户主目录的文件选择器   仅查看.jpg和.gif图像的目录:

JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
    "JPG & GIF Images", "jpg", "gif");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(parent);
if(returnVal == JFileChooser.APPROVE_OPTION) {
   System.out.println("You chose to open this file: " +
        chooser.getSelectedFile().getName());
}

答案 1 :(得分:1)

尝试将FileFilter与JFileChooser一起使用。 使用文件过滤器,您可以指定要填充的文件类型(仅限.jpg文件)。这是ur reff的链接。 * http://www.cs.cf.ac.uk/Dave/HCI/HCI_Handout_CALLER/node99.html *

答案 2 :(得分:0)

您可以创建自定义文件过滤器,例如

class Chooser extends JFrame {
        JFileChooser chooser;
        String fileName;

        public Chooser() {
            chooser = new JFileChooser();

            int retVal = 0;
            chooser.setAcceptAllFileFilterUsed(false);
            chooser.addChoosableFileFilter(new CUFilter());
            retVal = chooser.showOpenDialog(null);

            if (retVal == JFileChooser.APPROVE_OPTION) {
                fileName = chooser.getSelectedFile().getPath();
                // Ok logic
            }
        }
    }

    class CUFilter extends FileFilter {

        public boolean accept(File f) {
            if (f.isDirectory())
                return true;
            String s = f.getName();
            int i = s.lastIndexOf('.');

            if (i > 0 && i < s.length() - 1)
                if (s.substring(i + 1).toLowerCase().equals("mo"))
                    return true;

            return false;
        }

        public String getDescription() {
            return "Accept .mo files only";
        }
    }