【问题标题】:Exception in thread "main" java.lang.NullPointerException when make a JLabel [duplicate]制作JLabel时线程“main”java.lang.NullPointerException中的异常[重复]
【发布时间】: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 引用类路径顶部的图像或相对路径。这一切都假设图像包含在类路径上下文中

标签: java swing


【解决方案1】:

打印出变量“url”。你会发现它是空的。检查图像是否确实存在于给定路径上的 jar 中。这些帖子可能会有所帮助:

【讨论】:

    【解决方案2】:

    未知来源通常意味着它找不到图像,请确保图像存在并且与您的Java类文件放置在同一位置,如果不存在,您可以在getResource()中使用classpath相对路径,将/放在开始

    【讨论】:

      猜你喜欢
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-05
      相关资源
      最近更新 更多