难以将自定义图标添加到JFrame

时间:2010-03-19 03:31:13

标签: java swing icons jframe

我一直在尝试更改框架中的图标。我几乎尝试了一切:

  • 图标为16x16,尺寸合适....不起作用

  • 我尝试过PNG,GIF和JPG格式,但都没有。

  • 尝试了设置图标的不同方式....不起作用。

  • 我尝试过亲戚(本地路径),例如“icon.gif”和绝对路径,例如“c:\ work \ java \ icon.gif”......无效

这是我的代码,看看你是否能搞清楚 谢谢 奥利

    import javax.swing.*;
    public class androidDriver 
    {

        public static void main(String[] args) throws IOException 
        {
            JFrame f = new JFrame("Android Data Viewer");
            f.setResizable(false);
            f.setSize(300,300);
            f.setLocationRelativeTo(null);
            f.setVisible(true);
            f.setIconImage(new ImageIcon("androidIcon2.gif").getImage());
        }
    }

4 个答案:

答案 0 :(得分:1)

如果您将图像放在与类文件相同的目录中,则以下内容适用于您:

        f.setIconImage(new ImageIcon(androidDriver.class.getResource("androidIcon2.gif")).getImage());

还建议在之前设置图标图像,使框架可见

        f.setIconImage(new ImageIcon(androidDriver.class.getResource("androidIcon2.gif")).getImage());
        f.setVisible(true);

答案 1 :(得分:0)

我怀疑您可能必须等待使用MediaTracker加载图像。图像仍然可以在帧setIconImage引用它的位置加载,因此它什么都不做。

答案 2 :(得分:0)

您是否尝试过使用Toolkit.getDefaultToolkit()。getImage(“androidIcon2.gif”)

另外两件事:

  1. 图像是否存在?您发布的代码将无声地失败。

  2. 格式正确吗? (虽然我假设Java可以处理它,如果不是)

答案 3 :(得分:0)

在源文件夹旁边创建一个单独的文件夹,然后将图像放在那里,然后使用ImageIO来获取图像:

f.setIconImage(ImageIO.read(new File("res/androidIcon2.gif")));

此外,如果这不起作用,请尝试将图像保存为.png而不是.gif。