当我打开文件选择器时,如何选择 FileFilter 应该显示的内容?

How can I choose what FileFilter should show when I onpen the filechooser ?

我制作了一个按钮,你可以在其中选择你想要的文件,但我只想制作第一个按钮显示的图像,第二个按钮只显示网页,所以用户不能选择其他按钮,但它不会工作。

    JButton btnImage = new JButton("Parcourir");
    btnImage.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            JFileChooser openFile = new JFileChooser();
            int result = openFile.showOpenDialog(null);
            String path= ""; 
            String source ; 
            if (result == JFileChooser.APPROVE_OPTION) {
                openFile.addChoosableFileFilter(new  FileNameExtensionFilter("Image Files", "png","GIF", "jpg"));
                File selectedFile = openFile.getSelectedFile();

                textField_1.setText(selectedFile.getName());  
            path = selectedFile.getName();
            source = "<li><img src=" +path+ "id='nnm' style='width:100%;height:100%;'></li>";   
            }else {
                JOptionPane.showMessageDialog(null, "You have to choose a file ");
         }
        }
    });
    btnImage.setVisible(false);
    btnImage.setBounds(236, 223, 89, 23);
    frame.getContentPane().add(btnImage);

        btnPageWeb.addActionListener(new ActionListener() {
        public void  actionPerformed(ActionEvent arg0) {
        JFileChooser openFile = new JFileChooser();
        int result = openFile.showOpenDialog(null);
        String path; 
        String source ; 
        if (result == JFileChooser.APPROVE_OPTION) {
            File selectedFile = openFile.getSelectedFile();

            textField_1.setText(selectedFile.getName());  
        path = selectedFile.getName();
        source = "<li><iframe src="+path+"frameborder='0' id='nnm' style= 'width:100%;height:100%;' ></iframe></li>";
        }else {
            JOptionPane.showMessageDialog(null, "You have to choose a file ");
        }
        }

    });

    btnPageWeb.setVisible(false);
    btnPageWeb.setBounds(246, 250, 89, 23);
    frame.getContentPane().add(btnPageWeb);

这样做:

String[] EXTENSION=new String[]{"jpg", "png", "etc"};
FileNameExtensionFilter filter=new FileNameExtensionFilter("Images",EXTENSION);

您需要在显示对话框之前设置文件过滤器。像这样:

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) 
{
   // your code here
}

这是从找到的 JFileChooser 文档 here

您只需在为图像文件创建 JFileChooser 后添加此行

    JFileChooser openFile = new JFileChooser();

             openFile.setFileFilter(new FileNameExtensionFilter("Image files (*.GIF,*.PNG,*.JPG, *.JPEG)", "GIF","PNG","JPG", "JPEG"));

            int result = openFile.showOpenDialog(null);

以及网页

openFile.setFileFilter(new FileNameExtensionFilter(" HTMLDocument (*.HTML)",  "HTML"));

祝你好运!