JFileChooser过滤器

17 java swing jfilechooser image

我正在JFileChooser我的程序中,但只拍摄图像.所以我决定添加过滤器:

import javax.swing.*;

public class fileChooser {

 public static void main(String[] args) {
    JPanel panel = new JPanel();

    final JFileChooser fc = new JFileChooser();
    int file = fc.showOpenDialog(panel);
    fc.addChoosableFileFilter(new ImageFilter());
    fc.setAcceptAllFileFilterUsed(false);
 }
}
Run Code Online (Sandbox Code Playgroud)

我直接从Java教程那里得到了.但Eclipse强调以下内容为错误:

fc.addChoosableFileFilter(new ImageFilter());
fc.setAcceptAllFileFilterUsed(false);
Run Code Online (Sandbox Code Playgroud)

有什么建议?

And*_*son 28

我在我的程序中放了一个JFileChooser,但这只是拍摄图像.

有关该操作系统上该JRE支持的类型列表,请使用ImageIO.

FileFilter imageFilter = new FileNameExtensionFilter(
    "Image files", ImageIO.getReaderFileSuffixes());
Run Code Online (Sandbox Code Playgroud)

看到的类型 - Java 1.6/Windows 7

bmp
jpg
jpeg
wbmp
png
gif
Run Code Online (Sandbox Code Playgroud)

注意:不要硬编码那个列表!它可能会从版本更改为版本,OS也会更改为操作系统.例如

  1. 我对Windows支持加载BMP并不感到惊讶,但这是否会出现在Mac上?
  2. 看到WBMP提醒我存在这样的格式!

如果安装了,该列表将有更多格式.

过滤器显示在选择器中

图像选择器


maz*_*cha 9

的说法fc.addChoosableFileFilter()应该是一个子类javax.swing.filechooser.FileFilter.例如,您可以将代码更改为

fc.addChoosableFileFilter(new FileNameExtensionFilter("Image Files", "jpg", "png", "tif");
Run Code Online (Sandbox Code Playgroud)


小智 5

我正在使用setFileFilter()。

我的代码在下面(JAVA-JSE 1.6)

JFileChooser c = new JFileChooser();
//Setting Up The Filter
FileFilter imageFilter = new FileNameExtensionFilter(
    "Image files", ImageIO.getReaderFileSuffixes());

//Attaching Filter to JFileChooser object
c.setFileFilter(imageFilter);

//Displaying Filechooser
int rVal = c.showOpenDialog(new JPanel());
Run Code Online (Sandbox Code Playgroud)