getClass().getResource(..) 使图像图标突然为空
getClass().getResource(..) makes image icon suddenly null
我已经在这个网站上阅读了很多与这个问题相关的问题。但不知何故,none 的建议答案奏效了。
我想在我的 java 程序中使用图像。我今天第一次构建 .java 文件,但图像不适用于完成的构建。我试了很多。
getClass.getResource()
,Class 加载程序,重新分配我的资源文件夹,移动图像,切换图像,不同类型的 URL,但我 运行 成为 2 个问题之一方式:
当我的代码为:
时,我遇到了上述问题
label.setIcon(new ImageIcon("URL/copied/from/directory.jpg"));
或者,当我做这样的事情时:
label.setIcon(new ImageIcon(getClass().getResource("URL/copied/from/directory.jpg")));
然后我收到一条警告,指出此 URL 可能为空。
当我使用 getClass().getResource.read("URL/copied/from/directory.jpg");
时,我实际上遇到了同样问题的编译错误。
我真的不确定代码或 URL 有什么问题。我在其他类似问题的代码示例中遇到的一个问题是,我无法分辨代码的哪一部分是语法,哪一部分不是。
这里要求的是原码:
climateImageLabel.setIcon(new ImageIcon(getClass().getResource("src/DSA_Wildnistool/Pictures/KEIN BILD.jpg")));
label.setIcon(new ImageIcon("URL/copied/from/directory.jpg"));
这行不通,因为 String
应该代表 File
而不是 URL
,但这里很重要,不要'与我们分享 'something like' 正在使用的代码或 String
。分享 实际 copy/pasted 文本。
label.setIcon(new ImageIcon(getClass().getResource("URL/copied/from/directory.jpg")));
这试图在一行中做太多事情。打破它。使用 getResource(..)
得到一个 URL
( 打印出 URL)。使用 URL 组成 Icon
,检查它是否不是 null
。使用图标创建标签。
getClass().getResource.read("URL/copied/from/directory.jpg");
当然这不会编译,但是声明“我在其他类似问题中的代码示例中遇到的一个问题是我无法分辨哪一部分代码的一部分是语法,而不是语法。" 特别能说明问题。 .. Java 101 能够读取编译器错误并解决它或形成有关解决它的特定问题。 OTOH 使用嵌入式资源创建跨平台 GUI 比 Java 101 更高级一些。也许你应该暂时搁置这个项目并练习 Java 基础知识,直到你熟悉它们。
如果您想尝试并继续解决这个问题,请post一个基于第二种方法的简短但完整的代码示例(唯一一个有道理)。
但是为了提供帮助,我们至少需要知道从中调用此代码的 class 的包名('short but complete example' 会显示),以及目录项目本身的结构(至少显示 class 和图像的路径)。
我已经在这个网站上阅读了很多与这个问题相关的问题。但不知何故,none 的建议答案奏效了。
我想在我的 java 程序中使用图像。我今天第一次构建 .java 文件,但图像不适用于完成的构建。我试了很多。
getClass.getResource()
,Class 加载程序,重新分配我的资源文件夹,移动图像,切换图像,不同类型的 URL,但我 运行 成为 2 个问题之一方式:
当我的代码为:
时,我遇到了上述问题label.setIcon(new ImageIcon("URL/copied/from/directory.jpg"));
或者,当我做这样的事情时:
label.setIcon(new ImageIcon(getClass().getResource("URL/copied/from/directory.jpg")));
然后我收到一条警告,指出此 URL 可能为空。
当我使用 getClass().getResource.read("URL/copied/from/directory.jpg");
时,我实际上遇到了同样问题的编译错误。
我真的不确定代码或 URL 有什么问题。我在其他类似问题的代码示例中遇到的一个问题是,我无法分辨代码的哪一部分是语法,哪一部分不是。
这里要求的是原码:
climateImageLabel.setIcon(new ImageIcon(getClass().getResource("src/DSA_Wildnistool/Pictures/KEIN BILD.jpg")));
label.setIcon(new ImageIcon("URL/copied/from/directory.jpg"));
这行不通,因为String
应该代表File
而不是URL
,但这里很重要,不要'与我们分享 'something like' 正在使用的代码或String
。分享 实际 copy/pasted 文本。label.setIcon(new ImageIcon(getClass().getResource("URL/copied/from/directory.jpg")));
这试图在一行中做太多事情。打破它。使用getResource(..)
得到一个URL
( 打印出 URL)。使用 URL 组成Icon
,检查它是否不是null
。使用图标创建标签。getClass().getResource.read("URL/copied/from/directory.jpg");
当然这不会编译,但是声明“我在其他类似问题中的代码示例中遇到的一个问题是我无法分辨哪一部分代码的一部分是语法,而不是语法。" 特别能说明问题。 .. Java 101 能够读取编译器错误并解决它或形成有关解决它的特定问题。 OTOH 使用嵌入式资源创建跨平台 GUI 比 Java 101 更高级一些。也许你应该暂时搁置这个项目并练习 Java 基础知识,直到你熟悉它们。
如果您想尝试并继续解决这个问题,请post一个基于第二种方法的简短但完整的代码示例(唯一一个有道理)。
但是为了提供帮助,我们至少需要知道从中调用此代码的 class 的包名('short but complete example' 会显示),以及目录项目本身的结构(至少显示 class 和图像的路径)。