【问题标题】:Why is my JFrame Icon not changing from the default java icon?为什么我的 JFrame 图标没有从默认的 java 图标改变?
【发布时间】:2017-08-24 11:24:51
【问题描述】:

我尝试了多种解决方案来更改我的应用程序的图标,但都没有奏效!当我执行以下操作时,我没有收到任何错误,但它仍然不会改变!?请有人告诉我哪里出错了,因为我没有看到任何错误,而且我也没有收到任何错误!

我什至确定我要使用的图标是 20x20 像素的图标,因为我在某处看到了图标的最大尺寸。

frame.setIconImage(
            new ImageIcon(getClass().getResource("/images/bfc_icon.png")).getImage());

为什么这不起作用?任何帮助将不胜感激!

编辑:

我正在测试文件是否存在,结果它确实存在,但它仍然没有被设置为应用程序图标...这是为什么呢??

URL url = getClass().getResource("src/images/bfc_icon.png");
    if (url == null)
        System.out.println( "Could not find image!" );
    else
        frame.setIconImage(new ImageIcon(url).getImage());

【问题讨论】:

  • 你用的是什么操作系统?
  • 并没有真正深入那里,但似乎,如果无法加载图像,它只会在那里返回 null 而不是在构造函数中引发错误。您可以尝试先检查资源是否存在,例如通过测试 getResourceAsStream(...) != null
  • @FlorianSchaetz 是的,之前它曾经告诉我它是空的,但是现在我使用这行代码并没有给出错误,但它实际上也没有改变图标。
  • @SchiduLuca Mac

标签: java jframe icons


【解决方案1】:
private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
        try {
            // TODO add your handling code here:
            Image img=ImageIO.read(getClass().getResource("ur path"));
            this.setIconImage(img);
        } catch (IOException ex) {

        }

这会起作用

【讨论】:

  • 我需要在某个地方调用这个方法吗?另外,如果我确实调用它,我将使用什么作为参数?或者我可以从这个方法中获取代码并在创建框架之后将其放入?
  • 这个 jfram 事件并在 fram 开始运行时工作,并且这个方法以这种形式写入 jfram 类中,在它(方法)中你可以编写你需要的任何代码
  • 我试过了,还是不行,还是谢谢你的帮助。
【解决方案2】:

似乎有点晚了,但我希望这会有所帮助。 当您在初始化 JFrame 之前调用 setIconImage() 时,可能会出现此问题。


下面的代码(使用 Eclipse IDE)也有这个问题:

setIconImage(Toolkit.getDefaultToolkit().getImage(Apps.class.getResource("/ico.png")));
initComponents();

我通过交换这两个不小心解决了这个问题,所以它看起来像这样:

initComponents();
setIconImage(Toolkit.getDefaultToolkit().getImage(Apps.class.getResource("/ico.png")));

你也应该尝试这样做,如果你没有使用任何窗口构建器工具,至少在 JFrame 初始化之后调用setIconImage()

干杯!

【讨论】:

    【解决方案3】:

    在我的例子中,我只是简单地将我想用作我的图标的图片复制到项目文件夹而不是 src 文件夹(源代码文件夹)中,并且它起作用了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2021-02-13
      • 2022-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多