java - Swing - 在 JAR 文件中包含图像
问题描述
我有一个 JAVA 项目,它有一个带屏幕的图形界面,用Swing开发。
我有 2 张图片,背景和图标,它们在包中:
br\com\drsolutions\monitorar\imagens
项目结构:
br\com\drsolutions\monitorar\imagens
Fundo.jpg
icone.png
br\com\drsolutions\monitorar\rede
TestarIcmp.java
br\com\drsolutions\monitorar\ux
InterfaceGrafica.java
br\com\drsolutions\monitorar
Aplicativo.java
在 InterfaceGrafica.java 文件中,我将图像添加到 JFrame 中,如下所示:
...
jFrame = new JFrame("Monitorar");
jFrame.setSize(246, 410);
jFrame.setResizable(false);
jFrame.setLayout(null);
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
/* Colocar a imagem no background e o ícone na janela */
try {
jFrame.setContentPane(new JLabel(new ImageIcon(
ImageIO.read(new File("src\\br\\com\\drsolutions\\monitorar\\imagens\\Fundo.jpg")))
));
jFrame.setIconImage(new ImageIcon("src\\br\\com\\drsolutions\\monitorar\\imagens\\icone.png")
.getImage()
);
} catch (IOException e) {
return false;
}
...
如何添加图像而不必以这种方式传递完整路径?
如何使图像在我生成的 JAR 文件中工作?
谢谢,迭戈·M·罗德里格斯
解决方案
在将文件放入 JAR 之前,您正在通过磁盘上的路径访问文件。您需要使用资源加载器,如: How to read a file from jar in Java?
推荐阅读
- excel - 如何将百分比数据类型转换为 Int
- java - Spring Cloud 数据流 - 休息客户端 - 覆盖 RestTemplate
- python - Python Selenium 找不到元素
- python - 用符号替换每两个单词后的空格
- c# - 如何围绕单个轴旋转 3D 对象?
- javascript - 在显示之前未格式化日期
- python - 如何在pydub中加载大文件
- kotlin - kotlinx.serialization , 编码解码 SnapshotStateList
- skaffold - Skaffold 未针对注册表进行身份验证
- java - Spring Boot 属性在进程列表中可见(ps)