我目前正在尝试简单地在 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/