我正在用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,它们显示得很好。也许有人能弄清楚什么是锣。
代码看起来不错,但它是非标准的,所以可能在某个地方有一些问题。
尝试使用标准的Swing组件。即让右面板是JLabel
,并通过将其包装在ImageIcon
对象中并在标签上调用setIcon
来显示图像。