有没有在JFrame和Windows任务栏上使用不同图标的方法?在JFrame和Windows任务栏中使用不同的图标
当我设置JFrame.setIconImage(img)这个相同的图像用作Windows图标。我可以在JFrame和Windows任务栏上使用不同的图标吗?
有没有在JFrame和Windows任务栏上使用不同图标的方法?在JFrame和Windows任务栏中使用不同的图标
当我设置JFrame.setIconImage(img)这个相同的图像用作Windows图标。我可以在JFrame和Windows任务栏上使用不同的图标吗?
我cound不使用建议的解决方案,因为我有JDK 1.5的要求...
所以,我这样做:如果客户端运行在JRE中的应用
public void setAppIcons(JFrame frame) {
List<Image> images = new ArrayList<Image>();
images.add(getImage(MessageUtils.getString("application.images.icon.app.32")).getImage());
images.add(getImage(MessageUtils.getString("application.images.icon.app.16")).getImage());
try {
Class<?> [] types = {java.util.List.class};
Method method = Class.forName("java.awt.Window").getDeclaredMethod("setIconImages", types);
Object [] parameters = {images};
method.invoke(frame, parameters);
} catch (Exception e) {
frame.setIconImage(images.get(0));
}
}
1.6主要,应用程序将选择图像列表来设置...
Tks为您的建议。
您可以使用setIconImages()来提供不同大小的图标列表。 JRE将为每次使用选择最佳可用大小(因此当图标以较大尺寸显示时,可以显示更详细的版本)。
AFAIK没有计划的方式来显示特定用途的不同图标。
你可以使用setUndecorated(true)并渲染窗口装饰,但它的重要性使得它可以像预期的那样工作(看起来&的感觉)。一个冒险的解决方案可能是通过窗口对等组件(在运行时使用JDK源代码+反射)找到自己的方式,并为其中一个或另一个对等组件提供不同的图标。同样,这可能需要特定于活动L码& F.
我正在使用Java 1.5,并且此方法setIconImages()在此版本中不可用=/ – 2013-02-21 17:35:22
这项工作在Windows 7上运行标准的Java 7:
List<Image> icons = new ArrayList<Image>();
icons.add(new ImageIcon("16.png").getImage());
icons.add(new ImageIcon("32.png").getImage());
f.setIconImages(icons);
图标必须正好 16×16和32×32。
*“图标必须完全** ** 16x16和32x32。”*否否。我只是尝试与17x17和31x31图标,它的工作如广告。话虽如此,我不知道什么是精确的“跨越”,并且不要强迫JRE(或OS)在运行时通过既不明显也不可控的方法调整图像大小。 – 2013-02-21 16:54:47
我正在使用Java 1.5并且此方法setIconImages()在此版本中不可用=/ – 2013-02-21 17:35:47
图标大小在[此问题]中讨论(http://stackoverflow.com/questions/18224184/sizes-of-frame-icons - 二手式摆动)。 – pvorb 2014-06-26 12:28:50
AFAIK,只有当JFrame被图标化时,通过WindowListener监听 – mKorbel 2013-02-21 14:43:00
是的,但是JFrame中使用的相同图标显示在Windows任务栏中。我想使用不同的图标。可能吗? – 2013-02-21 14:58:23