为什么我的JFrame图标没有从默认的java图标改变?

时间:2017-08-24 11:24:52

标签: java jframe icons

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

我甚至确保我想要使用的图标是一个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());

3 个答案:

答案 0 :(得分:0)

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) {

        }
  

这将起作用

答案 1 :(得分:0)

似乎有点太晚了,但我希望这会有所帮助。 在初始化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()

干杯!

答案 2 :(得分:0)

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