提问者:小点点

一些图像没有在JPanel上绘制


我正在用Java编写一个检索书籍封面艺术的应用程序。我尝试检索的大多数图像都显示得很好,但是周期性地,我会遇到一个不显示的图像,我一辈子也找不到原因。也许有人可以帮助我。以下是相关代码:

private BufferedImage cover;

        try {
            cover = ImageIO.read(new URL(coverArt.getImageURLs().get(0)));
        } catch (IOException exception) {
            System.out.println("error");
        }

@Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        //System.out.println(buttonPanel.getHeight());
        if (LeftPanel.getCollectionTable().getSelectedRow() >= 0) {
            g.drawImage(ComicBookCollection.getComicBookCollection().get(LeftPanel.getCollectionTable().getSelectedRow() + positionAdjust).getCover(),
                    12, 80, getWidth() - 25, getHeight() - 130, null);
        } else {
            repaint();
        }
    }

在此之前编译了一系列图像url。我知道这个列表是正确编译的。出于某种原因,它只适用于特定的随机标题。如果我把超人2放在那里,它不会出现,但是如果我把超人1放在那里,它会出现。我尝试过在其他程序中使用有问题的图像的url,它们显示得很好。也许有人能弄清楚什么是锣。


共1个答案

匿名用户

代码看起来不错,但它是非标准的,所以可能在某个地方有一些问题。

尝试使用标准的Swing组件。即让右面板是JLabel,并通过将其包装在ImageIcon对象中并在标签上调用setIcon来显示图像。