Java swing 应用程序找不到图像

标签 java image swing file-not-found

我正在用 Java 和 swing gui 为学校制作一个鱼雷游戏,请参阅压缩源 HERE .

我使用存储在/bin/resource/graphics/default 文件夹子文件夹中的自定义按钮图标和鼠标光标图像,其中根文件夹是程序的根文件夹(它也是最终 .jar 中的根文件夹)假设)除了“bin”之外还包含一个包含所有类的“main”文件夹。资源的相对路径存储在MapStruct.java的shipPath和mapPath变量中。 现在,Battlefield.java 的 PutPanel 类找到了它们并正确设置了其按钮的图标,但其他所有类都无法获取其图标,例如Table.java 的 setCursor,它应该为选定船舶的图像或 Field.java 的 this.button.setIcon(icon) 的所有元素设置鼠标光标;在构造函数中,应设置“水”按钮的图标。

我通过调试观察了发生的情况,加载后图像保持为空,尽管路径似乎是正确的。我还尝试在图像文件夹中编写测试文件,但该方法返回 filenotfound 异常。我尝试获取类的路径,看看它是否从假定的位置运行,看起来确实如此,所以我现在确实找不到问题。

有人可以帮我吗? 谢谢。

最佳答案

您需要加载这样的图标:

ClassLoader cl= this.getClass().getClassLoader();
URL imageURL   = cl.getResource("resources/...");
ImageIcon icon = new ImageIcon(imageURL);

并且您需要将资源文件夹添加到 Eclipse 中的类路径中。请注意,该路径不是文件路径,这样,如果您决定将应用程序捆绑在 jar 文件中,它就可以工作。

关于Java swing 应用程序找不到图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2658505/

相关文章:

java - Swing:JPanel "setSize"被忽略?

java - Stop() 当前正在执行的定时器

Java,按标点符号分割字符串,处理字符串,将标点符号添加回字符串

java - 滑动查看图像阵列中的下一张图片

c# - 如何在 WPF 中将图像保存到文件

java - 创建一个可以点击的 JFrame

java - 是否有适用于 Java 的 WYSIWYG 编辑器?

java - Spring LocaleResolver 链接

java - 我应该用 Erlang 编写自己的 flash-server 还是使用 Red5?

javascript - HTML/JS/Canvas - 在没有 base64 的情况下上传之前编辑图像的尺寸