如何用java制作分页的缩略图列表/目录?

如何用java制作分页的缩略图列表/目录?,java,image,swing,pagination,thumbnails,Java,Image,Swing,Pagination,Thumbnails,我正在尝试创建一个包含缩略图及其文件名的分页列表的面板。该列表还需要根据文件附带的各种元数据进行排序。缩略图宽120像素,高90像素。到目前为止,我已经: public void PhotoCatalog extends JPanel { private transient SortedList<PhotoMetadata> sortedThumbList; public void PhotoCatalog() { setLayout(new Gri

我正在尝试创建一个包含缩略图及其文件名的分页列表的面板。该列表还需要根据文件附带的各种元数据进行排序。缩略图宽120像素,高90像素。到目前为止,我已经:

public void PhotoCatalog extends JPanel {
    private transient SortedList<PhotoMetadata> sortedThumbList;

    public void PhotoCatalog() {
        setLayout(new GridLayout(sortedThumbList % 3, 3));
        Iterator<PhotoMetadata> iterator = sortedThumbList.iterator();
        while (iterator.hasNext()) {
            Thumbnail thumbnail = new Thumbnail(iterator.next());
            JPanel panel = new JPanel(new BorderLayout());
            panel.add(thumbnail, BorderLayout.NORTH);
            panel.add(new JLabel(iterator.next().getFilename(), BorderLayout.SOUTH);
            this.add(panel);
        }
    }

    public class Thumbnail extends JPanel {
        BufferedImage thumbnail = null;

        public void Thumbnail(PhotoMetadata data) {
            try {
                thumbnail = ImageIO.read(new File(data.getFilename()));
            }
            catch (IOException e) {}
        }
        @Override
        public void paintComponent(Graphics g) {
            Graphics2D g2d = (Graphics2D) g;
            g2d.drawImage(thumbnail, 0, 0, null);
    }
}
public void光电阴极扩展JPanel{
私人临时分类名单分类名单;
公共真空光电阴极(){
setLayout(新网格布局(sortedThumbList%3,3));
迭代器迭代器=sortedThumbList.Iterator();
while(iterator.hasNext()){
缩略图=新缩略图(iterator.next());
JPanel panel=newjpanel(newborderlayout());
面板。添加(缩略图、边框布局。北);
添加(新的JLabel(iterator.next().getFilename(),BorderLayout.SOUTH);
本条添加(面板);
}
}
公共类缩略图扩展了JPanel{
BuffereImage缩略图=空;
公共空心缩略图(光绘数据){
试一试{
缩略图=ImageIO.read(新文件(data.getFilename());
}
捕获(IOE){}
}
@凌驾
公共组件(图形g){
Graphics2D g2d=(Graphics2D)g;
g2d.drawImage(缩略图,0,0,空);
}
}
我需要整合实际的列表才能进行排序和分页,但我不知道从哪里开始以及使用哪个列表。到目前为止,我的代码显示了一个大小不正确的黑色图像

1) 如何使图像以正确的大小显示在目录中? 2) 如何集成可排序列表以将缩略图及其元数据添加到其中


谢谢!

您对
drawImage()
的调用可以具有缩放图像的宽度和高度。您可以按排序顺序将每个
缩略图添加到中。使用
JList
可以更改图片的包装方式。将元数据放入每个
缩略图的工具提示中

编辑:

JList
是否支持分页

是,将列表添加到
JScrollPane

它可以动态更新吗


是的;您可能希望通过覆盖调用
drawImage()的
DefaultListModel的add/insert方法来对
ListModel
进行排序
可以具有缩放图像的宽度和高度。您可以按排序顺序将每个
缩略图添加到。使用
JList
可以更改图片的包装方式。将元数据放入每个
缩略图的工具提示中

编辑:

JList
是否支持分页

是,将列表添加到
JScrollPane

它可以动态更新吗


是的;您可能希望通过覆盖
DefaultListModel

的add/insert方法来保持您的
ListModel
的排序。这两个问题都是非常广泛的问题,虽然您有一个shell来回答它们,但您实际上并没有采取很多步骤来尝试它们。我建议您将其分解为更易于管理的块另外:你正在把一个JPanel放到一个JPanel到一个JPanel中。你确定你想要这种类型的结构,或者尝试一个?真的……我想我的第一个问题是,通过Java,什么样的列表或表对象可以让我完成分页、排序和显示缩略图?我想做一个Windows Explorer thumbnail effect.JTable似乎没有我需要的所有功能。你需要什么功能,而一张表却不能提供这些功能?这两个问题都是非常广泛的,虽然你有一个壳来回答它们,但你并没有真正采取很多步骤来尝试它们。我建议将其分解为更易于管理的部分并加以解决。另外:您正在将一个JPanel放入一个JPanel中。您确定要使用这种类型的结构还是可以尝试一种?真的……我想我的第一个问题是,通过Java可以使用什么样的列表或表对象来完成分页、排序和显示缩略图?我正在寻找一种Windows资源管理器缩略图效果。J表似乎没有获得我需要的所有功能。您需要哪些表不提供的功能?JList是否支持分页?是否可以动态更新?用户将删除和添加缩略图。JList是否支持分页?是否可以动态更新?用户将删除和添加缩略图。