java - JLabel图片显示问题

标签 java image swing jlabel embedded-resource

我目前正在尝试简单地在 JFrame 中显示图像。我尝试使用下面的代码,但它似乎不起作用。我不知道哪里出了问题 - 有什么想法吗?

这是控制台中显示的错误消息:

Exception in thread "main" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(Unknown Source)
    at Day1.PictureTester.<init>(PictureTester.java:22)
    at Day1.PictureTester.main(PictureTester.java:14)

这是代码:

import java.awt.GridLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class PictureTester extends JFrame{

    private static final long serialVersionUID = 1L;

    public static void main(String[] args) {
        new PictureTester().setVisible(true);
    }

    public PictureTester(){
        super();
        setSize(600, 600);
        setLayout(new GridLayout());
        java.net.URL imgUrl = PictureTester.class.getResource("C:\\Users\\Harry\\Desktop\\LearnJava\\pug-image3.jpg");
        ImageIcon image = new ImageIcon(imgUrl);    
        JLabel display = new JLabel(image);

        add (display);
    }
}

最佳答案

当然这是行不通的。阅读 Class.getResource() 的 javadoc。它使用类加载器类路径加载资源,使用斜杠分隔路径。

将您的图像与 PictureTester 类放在同一个包中,然后使用

PictureTester.class.getResource("pug-image3.jpg");

或者将其放入源文件夹的某个随机包中(例如 com.foo.bar),然后使用加载它

PictureTester.class.getResource("/com/foo/bar/pug-image3.jpg");

关于java - JLabel图片显示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31370104/

相关文章:

java - 如何判断NetworkInterface对象是否属于物理网卡

java - 我们可以在面板内添加面板来创建嵌套选项卡式菜单吗?

java - 使用 DefaultListCellRenderer 设置 JList 图标?

java - 新的 Sonar IntelliJ 插件增量分析和检测不起作用

java - 从 Hibernate 3 迁移到 4 会减慢启动速度

javascript - 使用 Servoy 翻转图像媒体

html - 在网页上加载大图像作为背景

java - 如何将按钮垂直放置在框架中心?

java - oAuth 2 Gmail - Android/iOS 连接和服务器使用

python - 图像自适应阈值处理导致数据丢失