Java.awt.SystemTray没有正确显示托盘图标

use*_*454 8 java icons swing system-tray awt

我的代码片段如下:

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();
}
Run Code Online (Sandbox Code Playgroud)

一切运行顺利,但系统托盘中显示的图像被切断.除非我缩小到16x16(从40x40),否则只显示左上角部分.这icon.png是一个正确加载的图像文件(非空).我以为系统托盘图标文件可能是40px?

有人可以向我解释一下这里有什么问题吗?

Jim*_*Jim 13

可能性包括TrayIcon.setImageAutoSize(),也许你的操作系统(假设Windows)设置为某种高dpi显示,如120或144,Java不能正确适应.