1

我正在尝试创建一个带有缩略图及其文件名的分页列表的面板。该列表还需要按文件附带的各种元数据进行排序。缩略图为 120 像素宽 x 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);
    }
}

我需要整合实际列表才能进行排序和分页,但我不知道从哪里开始以及使用哪个列表。到目前为止,我的代码显示了一个尺寸不合适的黑色图像。

1) 如何让图像以正确的尺寸显示在目录中?2) 我如何集成一个可排序的列表来添加缩略图及其元数据?

谢谢!

4

1 回答 1

1

您的调用drawImage()可以具有将缩放图像的宽度和高度。您可以按排序顺序将每个添加thumbnail到 a中。JListAJList允许您更改图片的包装方式。将元数据放在每个thumbnail.

编辑:

可以JList支持分页吗?

是的,将列表添加到JScrollPane.

并且可以动态更新吗?

是的; 您可能希望ListModel通过覆盖的添加/插入方法来保持排序DefaultListModel

于 2012-05-25T12:15:20.133 回答