移除默认的JFrame图标

9

在我的JFrame中,我有默认的咖啡图标。我想要将其删除。但是,当我执行setIconImage(null)时,它没有起作用。有人能告诉我如何完全删除图标的解决方案吗?

4个回答

25

始终保留Java源代码的副本是一个好习惯。java.awt.Window的代码(JFrame的超类)在setIconImage中有以下代码:

public void setIconImage(Image image)
{
  ArrayList<Image> imageList = new ArrayList<Image>();
  if (image != null)
  {
    imageList.add(image);
  }
  setIconImages(imageList);
}

你可以看到,传递空图像和什么都不做是一样的,所以你必须传递一个图像来消除咖啡杯。正如其他人建议的那样,使用一个1 x 1的透明图标是最好的选择。以下是创建该图标的一些代码:

Image icon = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB_PRE);
myFrame.setIconImage(icon);

我会这样完成最后一行代码:myFrame.setIconImage(new ImageIcon(icon)); - dargmuesli

6

创建一个由一个像素组成的图标(最好是透明的),并将其使用。如果您需要这样的图标,请联系我,我会发送给您。


5
几行代码就可以生成一个透明的1像素图标。 - Andrew Thompson

2

您可以将图像图标设置为透明图像,以去除咖啡杯。否则,我认为无法消除默认图标。


1

你可以使用GIMP、Photoshop或者Paint等软件创建一个1x1像素的透明图像,导出为.png或.jpg格式均可。然后应用它:

ImageIcon frameIcon = new ImageIcon("files\yourfile.png");
frame.setIconImage(frameIcon.getImage());

应该没问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接