【问题标题】:I am getting a nullPointerException on my URL link [duplicate]我的 URL 链接出现 nullPointerException [重复]
【发布时间】:2014-02-12 18:27:57
【问题描述】:

我正在尝试为我编写的这个数学练习程序构建一个工具栏。我正在尝试从名为 images 的文件夹中获取图像。它不允许我这样做。它给了我一个 NullPointerException,我将用 * 标记异常指向的行。

public JButton makeNavigationButton( String imageName, String toolTipText ) {
   String imgLocation = "images/" + imageName + ".jpg";
   URL imageURL = MathPractice.class.getResource(imgLocation);
   JButton button = new JButton();
   button.setToolTipText(toolTipText);
   //button.addActionListener(this);
   button.setIcon( new ImageIcon( imageURL )); //************* NPE here
   return button;
}

【问题讨论】:

  • 您认为所有这些代码都相关吗?不要让我们的生活变得困难。
  • 修复它,我希望它足以找到答案。

标签: java swing url nullpointerexception imageicon


【解决方案1】:

Class.getResource() 的文档说:

查找具有给定名称的资源。资源搜索规则 与给定类关联的由定义类实现 类的加载器。这个方法委托给这个对象的类 装载机。如果该对象是由引导类加载器加载的,则 方法委托给 ClassLoader.getSystemResource(java.lang.String)。

在委托之前,绝对资源名称由 使用此算法给定资源名称:

如果名称以“/”开头(“\u002f”),则资源的绝对名称是名称中“/”后面的部分。 否则,绝对名称的格式如下:

    modified_package_name/name 

modified_pa​​ckage_name 是这个对象的包名,用 '/' 代替了 '.' ('\u002e')。

在 Eclipse 中,如果images 目录在bin 中,就会被找到。将images 移动到src/images

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 2016-08-05
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多