我正在用 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 组件。 IE。让右侧面板成为 JLabel
,并通过将其包装在 ImageIcon
对象中并在标签上调用 setIcon
来使其显示图像。
关于java - 一些图像未在 JPanel 上绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41422050/