修改我的.jar程序的任务栏图标

16

我试图更改每次运行我的.jar程序时出现在任务栏中的默认java图标。我成功地使用frame.setIconImage(img)更改了它,但这使得图标太小了,我希望它像其他程序图标一样大且具有高质量。有什么办法可以做到这一点吗?谢谢。


我假设您使用的图像是正确的尺寸(Windows 7 的标准尺寸为256x256)。只是确认一下 :) - kentcdodds
我检查了图像的大小,它是256x256,但周围有透明区域,这就是问题所在。但它仍然是相当低质量的图标。有什么想法吗? - Rohit Malish
不确定您所说的“低质量图标”是什么意思。它是小的,还是像素化的?抱歉,我以前从未做过这个,所以我在瞎猜。 - kentcdodds
我已经解决了尺寸问题,但仍然存在像素化的情况。 - Rohit Malish
请看这个问题 - kentcdodds
你在用Windows系统,对吧? - Alonso del Arte
2个回答

21

由于您只提供了一个单一的图标,因此Windows将对该图标进行缩放以适应任务栏中需要显示的任何大小(可能是16x16、32x32或其他大小,具体取决于桌面主题和任务栏的大小)。

如果您想在任务栏中使用“好看”的图标,则需要提供一个32x32像素版本的图标。

一旦您拥有了这个版本,您就可以调用setIconImages(List)而不是 setIconImage()来定义操作系统可以使用的图标:

List<Image> icons = new ArrayList<Image>();
icons.add(getImage("someImage16x16.gif"));
icons.add(getImage("someImage32x32.gif"));
window.setIconImages(icons);

这里的getImage()是某个返回正确图标的方法。本质上,这与你之前用来定义当前图标的步骤是相同的。

你也可以使用这种方法提供一个 64x64 和 24x24 的图标(只需将更多图标添加到列表中即可)。


非常好。非常简单易懂,完美运行。谢谢! - Rohit Malish
我在某个地方读到过(有点含糊,但我忘记在哪里了),标准尺寸是256x256(不太确定为什么)。因为有一个方便的方法可以处理图像列表,所以您可能还想包括一个更大的图像。只是一个想法 :) - kentcdodds

4

尝试查看这个例子。看起来您需要使用frame.setIconImage(Toolkit.getDefaultToolkit().getImage("your_image.gif"));这行代码。


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