将徽章添加到托盘图标(java)



我用java创建了一个简单的应用程序来显示托盘图标,并从中显示分配给我的JIRA问题列表。

我现在有一个托盘图标,当你右键单击它时,它会弹出一条弹出消息,上面有分配给我的最后10个打开的问题,当你单击菜单项时,它将引导你在浏览器中选择所需的问题。

我现在想让它在托盘图标的顶部显示一个徽章,显示我有多少悬而未决的问题。我有代码可以找到问题的数量,但我一辈子都无法想出如何将徽章添加到托盘图标中。

im使用:

java.awt.MenuItem;
java.awt.PopupMenu;
java.awt.SystemTray;
java.awt.TrayIcon;

创建托盘图标和弹出菜单。

如有任何帮助,将不胜感激

感谢

好吧,我想明白了,

首先我选择原始图标:

BufferedImage im = ImageIO.read(Systray.class.getResource("icon.gif"));

然后我使用Graphics2D绘制图像的ontop:

Graphics2D g2 = im.createGraphics();
g2.setColor(Color.BLACK);
g2.drawString("10", 2, 10);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(im, "png", baos);
byte[] b = baos.toByteArray();

然后我从字节数组创建一个新的图像图标:

ImageIcon imgTmp = new ImageIcon(b);

最后我设置了托盘图标:

_icon.setImage(imgTmp.getImage());

(_icon是TrayIcon的实例)

我希望这能帮助其他人,如果你有更好的解决方案,我很乐意看到它

最新更新