【问题标题】:How would you change your programs Icon instead of the default java icon您将如何更改程序图标而不是默认的 java 图标
【发布时间】:2015-05-09 07:06:36
【问题描述】:

当我通过 Eclipse 启动时,这会显示图标,但是当我将其导出到 Runnable Jar 时,它会显示默认的 Java 图标,我不想使用 Resource 方法,因为它在 IDE 中不起作用甚至。

public static void main(String args[]) {
    Game component = new Game();
    ImageIcon img = new ImageIcon("res/game.png");

    JFrame frame = new JFrame();
    frame.add(component);
    frame.setTitle(NAME);
    frame.setIconImage(img.getImage());
    frame.setResizable(false);
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);

    component.start();
}

【问题讨论】:

标签: java eclipse icons


【解决方案1】:

请使用以下代码

Image image = ImageIO.read(getClass().getResourceAsStream("/res/icon.png"));
setIconImage(new ImageIcon(image).getImage());

并将您的图标文件放在src 文件夹的res 文件夹中。但是当你执行jar文件时它会显示框架的图标。对我来说工作得很好。

【讨论】:

  • 代码看起来像 try { Image image = ImageIO.read(Game.class.getResourceAsStream("/res/icon.png")); frame.setIconImage(new ImageIcon(image).getImage()); } catch (IOException e) { e.printStackTrace();但我在线程“main”java.lang.IllegalArgumentException 中得到以下错误异常:输入 == null!在 javax.imageio.ImageIO.read(Unknown Source) at package.Game.main(Game.java:51)
  • 问题是我使用的路径
【解决方案2】:

尝试以下代码将 iconImage 设置为框架:

frame.setIconImage(new ImageIcon("res/game.png").getImage());

即使在这个oracle doc 中,您也可以找到同样的方法。

编辑: 您是否尝试过此代码。这可能会有所帮助:

frame.setIconImage(new ImageIO.read(new File("res/game.png")));

也请查看explation

【讨论】:

  • frame.setIconImage(new ImageIcon("res/game.png").getImage());在 IDE 中工作,但是一旦我导出并通过 .jar 运行,就无法工作
  • 哦好吧..那么我们可能有问题:)
【解决方案3】:

问题是我使用了错误的文件运行方式,这是一个愚蠢的错误,但这就是我没有清理工作区的结果。

我要感谢所有试图提供帮助的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2020-02-09
    • 2012-04-30
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多