如何选择目录中的上一个或下一个图像?

时间:2011-11-27 21:32:24

标签: java image directory jfilechooser

所以我用一个JFileChooser创建了一个简单的图像查看器程序,其中我将图像加载到标签的图标中。我还保存了目录位置。我的主应用程序中有两个按钮,上一个和下一个,我如何制作它,以便当我按下它们时,它们从同一目录加载上一个图像或下一个图像?我想这将是某种形式的正则表达式搜索加上或减去一个整数,但我不确定这看起来如何,我在正则表达式上并不那么明亮。

我应该补充一点,我有一个方法,绘制(BufferedImage图像),它接受发送给它的BufferedImage并在JLabel上绘制它,以及一个方法loadImage(文件文件),它加载发送给它的任何图像。所以我加载文件然后绘制它。

2 个答案:

答案 0 :(得分:1)

  

我还保存了目录位置

然后,您可以使用File.listFiles(...)获取目录中所有文件的数组。您可能希望将其过滤为仅获取图像文件。

然后你想要按文​​件名对这个数组进行排序。

当您需要下一张/上一张图像时,您可以搜索数组以查找当前可见图像的索引,然后添加/减去1以显示下一张图像。

编辑:

请参阅:Filtering the List of Files

答案 1 :(得分:1)

您可以使用dir.listFiles( aFileFilter )列出目录中的所有文件。给自己写一个FileFilter(一个很好的匿名者),它只匹配所需类型的文件(扩展名为.jpg,.png,.bmp,.gif的文件)。

一个例子:

File[] images = dir.listFiles( new FileFilter() {
    @Override
    public boolean accept( File pathname ) {
        String name = pathname.getName();
        return name.endsWith( ".png" ) || name.endsWith( ".jpg" );
    }
} );

拥有该文件数组后,您可以使用线性搜索找到当前文件的位置,然后轻松选择下一个或上一个文件。