当前位置: 首页 > 面试题库 >

JButton上的ImageIcons没有显示在Runnable JAR文件中

彭开畅
2023-03-14
问题内容

我的GUI上有6个JButton,上面都有图像,当我编译并运行
代码时,JButtons上的所有图像均显示完美,但是在可运行的JAR文件中,
JButtons上的图像却没有显示..如何解决此问题?

我在代码中使用此方法在JButtons上显示图标

ImageIcon SettingsIc = new ImageIcon("bin/images/settings.png");
jb1 = new JButton(SettingsIc);
jb1.setFocusPainted( false );
//jb1.setBorderPainted(false); 
jb1.setContentAreaFilled(false);

问题答案:

This (as pointed out by a number of people)

ImageIcon SettingsIc = new ImageIcon("bin/images/settings.png");

建议您要加载从图像bin/images关闭文件系统。这是从应用程序执行点开始的相对路径。

ImageIcon 如果文件不存在,则不会抱怨。

如果可能的话,最好将资源嵌入Jar文件中(这将使其更易于部署),并使用类似的方法getClass().getResource("/bin/images/settings.png")来加载图像。

如果可能的话,你应该尝试使用ImageIO.read(URL)加载你的图片,它会抛出一个异常,如果资源指向的File/URL不
不存在(或无效)。



 类似资料:
  • 问题内容: 我有一个位于JButton顶部的JLabel,但它不会显示在顶部。注释掉JButton的代码后,将显示JLabel,这意味着它在其中,但在底部。有没有办法在JButton的顶部显示JLabel? 任何帮助都是极好的。谢谢! 编辑: 为了澄清起见,我需要在游戏中使用该按钮,单击该按钮时,按钮上方会显示一个JLabel,以显示添加的“得分”。在我的游戏中,JLabel将比JButton小,

  • 所以我在玩JPanel和JFrames,我注意到我创建的JPanel在添加到Jframe对象时没有显示。注意,当我在Jframe构造函数中创建了一个JPanel,并在将其添加到Jframe之前提供了JPanel参数时,它起了作用。然而,现在我使用的是我创建的JPanel对象,它不再工作了。这就是我所做的。 编辑:事实上,我想我发现了错误。JPanel有它的绘制方法,当删除时,它允许Jframe显示

  • 我已经下载了谷歌API,现在我的地图XML似乎是一个标准问题,它只是在谷歌地图应该显示的地方显示了一个灰色抓握,如下所示: 我已经尝试了两个API密钥(通过生成一个新的),但都没有成功。我在清单中添加了internet权限和Google maps库,如下所示: 舱单: API密钥: 这是我的地图XML布局: 我正在设置我的项目谷歌API的SDK版本和我的AVD相同。 当我的应用程序被加载并且我的意

  • 在我的Swing应用程序中,我有2个JFrameA和B。当我单击JFrameA上的按钮时,它会打开JFrameB并隐藏它自己(我设法完成了这部分) 在JFrame B上,我在JTabbedPane上放置了4个JPanels。每个JPanel有2个JButtons。 我该怎么做? //JPanel类 公共类AddItemPanel扩展javax.swing.jPanel{

  • 我部署laravel应用程序在共享托管public_html/应用程序文件夹。这是公共文件夹中的所有内容。在/.../.../文件我有其余的文件。当我做php工匠存储:链接在文件夹我的控制台说 在本地主机上,我将文件上载到存储/上载文件夹。现在该怎么办?我试图改变链接,但对我来说没有任何效果。。。