[英]Blank icon on system tray
我试图在系统托盘中添加一个图标,但是,当我运行该应用程序时,该图标为空白。
我的项目结构如下:
root/
libs/
...
src/
com/
projname/
logic/
...
ui/
MyClass.java
...
res/
icon.png
我试图在MyClass.java中添加图标,如下所示:
private void addToSystemTray() throws AWTException {
if (!SystemTray.isSupported()) {
return;
}
// get the SystemTray instance
SystemTray tray = SystemTray.getSystemTray();
// load an image
Image image = Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("icon.png"));
// construct tray icon
TrayIcon trayIcon = new TrayIcon(image, "My Project");
// add the tray image
tray.add(trayIcon);
}
我在IntelliJ上将res /文件夹标记为Resources Root ,并且还构建了.jar
来检查是否向其添加了图标-确实如此。
我究竟做错了什么?
您的图像很可能大于任务栏图标的大小并被裁剪。 这就是为什么您将图标显示为空白的原因。 因此,您必须设置trayIcon.setImageAutoSize(true);
JavaDoc的:
public void setImageAutoSize (布尔型自动调整大小)
设置自动调整大小属性。 自动调整大小确定是否自动调整纸盘图像的大小以适合为纸盘上的图像分配的空间。 默认情况下 ,auto-size属性设置为false 。
如果auto-size为false,并且图像尺寸与进纸匣图标空间不匹配,则会在该空间内原样绘制图像-如果大于分配的空间,则会对其进行裁剪 。
如果auto-size是true ,则将图像拉伸或缩小以适合进纸匣图标的空间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.