2012-05-30 48 views
6

的我的代碼的片段是以下:其中,Java.awt.SystemTray不顯示托盤圖標正確

SystemTray systray = SystemTray.getSystemTray(); 

try{ 
    TrayIcon trayicon = new TrayIcon(new ImageIO.read(new File("icon.png")),"I am a description"); 
} 
catch(IOException e) { 
    e.printStackTrace(); 
} 

一切操作順利,但在系統托盤中顯示的圖像被切斷。除非我縮小到16x16(從40x40),否則只顯示左上部分。 icon.png是正確加載(不爲空)的圖像文件。我認爲系統托盤圖標文件可能是40px?

可能有人請向我解釋什麼是這裏的問題?

回答

11

可能性包括TrayIcon.setImageAutoSize(),也許你的OS(假設Windows)中設置爲某種高DPI顯示如120或144和Java的不適應到正常。

+0

哇,我完全錯過了這個功能。謝謝! – user1418454

+1

我喜歡閱讀源代碼的類型,所以我去了,找到了[Windows實現(http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/7-b147 TrayIcon的/sun/awt/windows/WTrayIconPeer.java#WTrayIconPeer)。它看起來像是16x16的目標,如果你沒有開啓autosize。 – Jim