在继承自Frame类内实现如下两个方法,和一个属性:private Image image;
在initialize()方法中this.image = loadImage("/logo.jpg");private Image loadImage(String name)
{
java.net.URL url = null;
try
{ url = getClass().getResource(name);
java.awt.Toolkit toolkit = getToolkit();
Image img = toolkit.getImage(url);
toolkit.prepareImage(img, -1, -1, this);
return img;
}
catch (Exception e)
{
System.err.println("ImageButton.loadImage() : Couldn't load the image " + name + ".");
return null;
}
}
public boolean imageUpdate(java.awt.Image img, int flags, int x, int y, int w, int h)
{ boolean ret = true;
if (img == this.image)
{
if ((flags & java.awt.image.ImageObserver.PROPERTIES) == java.awt.image.ImageObserver.PROPERTIES)
{
ret = true;
}
if ((flags & java.awt.image.ImageObserver.ALLBITS) == java.awt.image.ImageObserver.ALLBITS)
{
try
{
this.frame.setIconImage(img);
}
catch (Exception e)
{
}
ret = false;
}
return ret;
}
else
return super.imageUpdate(img, flags, x, y, w, h);
}

解决方案 »

  1.   

    楼上太复杂了吧?
    在JFrame的jbinit方法内添上如下即可:
    this.setIconImage(Toolkit.getDefaultToolkit().createImage(yourjframeclassname.class.getResource("icon.gif")));
    其中yourjframeclassname就是你这个jframe类的class name,("icon.gif")里面可以写图片的绝对路径、相对路径,若如此写,即此jframe类和图片icon.gif放于同一目录下