生成 JAR 文件后 JFrame 设计发生变化?图片丢失

JFrame design change after generating JAR file? Image missing

我在使用 Swing(或者可能是 netBeans)时遇到了一点问题,我正在做一个测试 JFrame,我用这行代码通过图像更改了它的背景:

this.setContentPane(new JLabel(new ImageIcon(ImageIO.read(new File("src/testdesign/BG.png")))));

并且我使用 netBeans 在框架中添加了 JLabelIcon。 编译项目时的结果(在IDE)是:

一切都很好..但是当我生成一个JAR文件时,结果是:

我不是 Java 专业人士,所以我认为我更改背景的方式不正确,或者可能是另一回事。

您加载背景图片的方式不正确。在您的代码图像位置取决于项目目录 src。您应该从类路径但文件系统加载图像。您 Class.getResource 修复它的方法例如:

this.setContentPane(new JLabel(new ImageIcon(getClass().getResource(pathToImage))));