有沒有在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