【发布时间】:2019-12-02 10:59:42
【问题描述】:
我有一个 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·罗德里格斯
【问题讨论】:
-
我认为你应该看看这个答案:stackoverflow.com/a/8661032/4904569
-
"jFrame.setLayout(null);" 1) Java GUI 必须在不同的操作系统、屏幕尺寸、屏幕分辨率等上使用不同语言环境中的不同 PLAF。因此,它们不利于像素完美布局。而是使用布局管理器,或 combinations of them 以及 white space 的布局填充和边框。
-
.. 2) 应用程序资源在部署时将成为嵌入式资源,因此明智的做法是立即开始访问它们。 embedded-resource 必须通过 URL 而不是文件访问。请参阅info. page for embedded resource 了解如何形成 URL。
标签: java image swing jar embedded-resource