如何解决getClass().getResource(..) 使图像图标突然为空
我在本网站上阅读了很多与此问题相关的问题。但不知何故,建议的答案都没有奏效。
我想在我的 Java 程序中使用图像。我今天第一次构建 jar 文件,但图像不适用于完成的构建。我尝试了很多。
getClass.getResource()
,类加载器,重新分配我的资源文件夹,移动图像,切换图像,不同类型的 URL,但我遇到了两个问题之一:
我要么遇到上述问题,当我的代码为:
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
,但这里很重要,不要分享与我们“类似”代码或使用的String
。分享实际复制/粘贴文本。 -
label.setIcon(new ImageIcon(getClass().getResource("URL/copied/from/directory.jpg")));
这试图在一行中做太多事情。打破它。使用getResource(..)
获得URL
(打印出网址)。使用 URL 形成Icon
,检查它不是null
。使用图标创建标签。 -
getClass().getResource.read("URL/copied/from/directory.jpg");
当然这不会编译,但是声明“我在其他类似问题中的代码示例中遇到的一个问题是我无法分辨代码的哪一部分是语法哪个不是。” 尤其能说明问题。 Java 101 能够读取编译器错误并解决它或形成有关解决它的特定问题。 OTOH 使用嵌入式资源创建跨平台 GUI 比 Java 101 高级一些。也许您应该暂时搁置这个项目并练习 Java 基础知识,直到您熟悉它们。
如果您想尝试并继续解决这个问题,请发布一个基于第二种方法(唯一有意义的方法)的简短但完整的代码示例。
但是为了提供帮助,我们至少需要知道调用此代码的类的包名称(“简短但完整的示例”将揭示这一点),以及项目本身的目录结构(至少显示了类和图像的路径)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。