【发布时间】:2017-12-09 22:43:18
【问题描述】:
我是初学者,在尝试使用 JPG 制作标签时遇到了一些问题。
它表明
线程“主”java.lang.NullPointerException 中的异常
在 javax.swing.ImageIcon.(未知来源)
在pane.MyImageIcon.(MyImageIcon.java:11)
在pane.MyImageIcon.main(MyImageIcon.java:21)
package pane;
import java.net.*;
import java.awt.*;
import javax.swing.*;
public class MyImageIcon extends JFrame {
public MyImageIcon() {
JFrame jf=new JFrame();
Container container = jf.getContentPane();
JLabel jl = new JLabel("it is a frame", JLabel.CENTER);
URL url = MyImageIcon.class.getResource("ofii.jpg");
Icon icon = new ImageIcon(url);
jl.setIcon(icon);
jl.setHorizontalAlignment(SwingConstants.CENTER);
jl.setOpaque(true);
container.add(jl);
jf.setSize(800,800);
jf.setVisible(true);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new MyImageIcon();
}
}
【问题讨论】:
-
那么导致问题的语句是什么?该语句中的哪个变量为空?一旦你知道你可以解决问题(或者至少问我们一个特定的问题,而不是仅仅发布一个堆栈跟踪)。告诉我们您采取了哪些步骤来调试问题?
-
根据你对
Class#getResource的使用,它会在包pane中搜索名为ofii.jpg的图片。确保图像存在于正确的位置。如果您知道包和图像位置之间的关系,则可以使用/ofii.jpg引用类路径顶部的图像或相对路径。这一切都假设图像包含在类路径上下文中