未经测试,因为未在装有JDK的计算机上进行测试,所以请耐心等待,所有内容均按“原样”输入,但应该可以帮助您入门(请耐心等待……)
从文件夹加载所有图像
import java.awt.image.BufferedImage;import java.io.File;import java.io.FilenameFilter;import java.io.IOException;import javax.imageio.ImageIO;public class Test { // File representing the folder that you select using a FileChooser static final File dir = new File("PATH_TO_YOUR_DIRECTORY"); // array of supported extensions (use a List if you prefer) static final String[] EXTENSIONS = new String[]{ "gif", "png", "bmp" // and other formats you need }; // filter to identify images based on their extensions static final FilenameFilter IMAGE_FILTER = new FilenameFilter() { @Override public boolean accept(final File dir, final String name) { for (final String ext : EXTENSIONS) { if (name.endsWith("." + ext)) { return (true); } } return (false); } }; public static void main(String[] args) { if (dir.isDirectory()) { // make sure it's a directory for (final File f : dir.listFiles(IMAGE_FILTER)) { BufferedImage img = null; try { img = ImageIO.read(f); // you probably want something more involved here // to display in your UI System.out.println("image: " + f.getName()); System.out.println(" width : " + img.getWidth()); System.out.println(" height: " + img.getHeight()); System.out.println(" size : " + f.length()); } catch (final IOException e) { // handle errors here } } } }}使用的API
这相对简单,只使用标准的JDK打包的类:
File
FilenameFilter
BufferedImage
ImageIO
这些Java教程的课程可能对您也有帮助:
- 读取/加载图像
- 如何使用图标
- 如何使用文件选择器
可能的增强
- 使用Apache Commons
FilenameUtils
提取文件的扩展名 - 根据实际的MIME类型或内容而不是扩展名检测文件
- 我将UI代码留给您。由于我不知道这是否是家庭作业,因此我不想提供完整的解决方案。但继续:
- 查看
FileChooser
以选择文件夹。 - 我假设您已经知道如何制作框架/窗口/对话框。
- 阅读Java教程 如何使用图标部分,该部分教您如何显示和标记它们。
- 查看
- 我遗漏了一些要处理的问题:
- 异常处理
- 带有邪恶符号的文件夹(例如,您有一个文件夹“ TryMeIAmEvil.png”)
通过结合以上所有内容,这很容易做到。



