在JFrame中设置图标

时间:2012-10-15 08:52:33

标签: java swing icons jframe imageicon

我想更改项目的图标而不是java图标。当程序图标显示在状态栏中时,它应该显示自定义图标而不是默认的java图标。

我正在使用以下代码。请告诉我这段代码有什么问题。

class newframe extends JFrame 
{

    Container cp;
    newframe()
    {
        cp=this.getContentPane();
        cp.setLayout(null);
    }

    public static void main(String args[])
    {
        newframe frm= new newframe(); 

        frm.setbounds(0,0,1000,800);
        frm.setVisible(true);
        ImageIcon im1= new ImageIcon("path upto image");
        frm.setIconImage(im1.getImage());
    }
}

3 个答案:

答案 0 :(得分:5)

..new ImageIcon("path upto image"); 

框架图标通常是嵌入式资源,因此必须由URL访问,而不是String代表File的路径。

答案 1 :(得分:2)

有一些事情会阻止它编译。第一:

frm.setbounds(0,0,1000,800);

你的“setbounds”应该有一个大写B.通常,函数将被装入,使得第一个单词的第一个字母是小写的,后面的单词是大写的。请参阅此链接以获取有关setBounds的文档:setBounds

您的ImageIcon路径中存在第二个问题。很难说,如果你的代码是正确的,或者你为了这个例子而删除了路径,但是Andrew Thompson已经充分解决了这个问题。

答案 2 :(得分:0)

我认为问题在于图像的消失。你应该做的不是直接路径,而是做这样的事情:

ImageIcon im1= new ImageIcon("Toolkit.getDefaultToolkit(). getImage(getClass().getResource("path upto image"))");
我使用我的所有应用程序执行此操作,并且每次都有效。