java - 一些图像未在 JPanel 上绘制

标签 java image swing

我正在用 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,它们显示得很好。也许有人能弄清楚发生了什么。

The image is supposed to display on the right

This is what it is supposed to look like

最佳答案

代码看起来不错,但它是非标准的,因此可能存在一些问题。

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

关于java - 一些图像未在 JPanel 上绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41422050/

相关文章:

java - 如何操作粘贴到 JTextField 中但不输入的文本?

php - 无法更改 GD imagestring() 的字体大小

java - java 导入如何工作(swing)?

java - Jpanel 在设计时自由移动项目

java - 如果 JFrame 调整大小,则调整 JProgressBar 的大小

java - 获取此异常,迫使 Android 应用程序在启动时崩溃

java - 在java中求两个随机数的平均值,然后用switch语句计算一个数字滚动的次数

java - 如何在无需用户输入的情况下在我的排队系统上添加自动 ID 号?

android - 如何在android中实现 ImageView 的缩放效果?

java - Android 将图片发布到 Facebook 墙