【问题标题】:add badge to tray icon (java)将徽章添加到托盘图标(java)
【发布时间】:2013-08-14 15:00:04
【问题描述】:

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

我目前拥有的是一个托盘图标,当您右键单击它时会弹出一条弹出消息,其中包含分配给我的最后 10 个未解决问题,当您单击菜单项时,它会将您定向到您想要的问题选择的浏览器。

我现在希望它在托盘图标顶部显示一个徽章,显示我有多少未解决的问题。我有代码可以找到问题的数量,但我一生都无法弄清楚如何将徽章添加到托盘图标。

我正在使用:

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

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

任何帮助将不胜感激

谢谢

【问题讨论】:

    标签: java awt system-tray


    【解决方案1】:

    好吧,我想通了,

    首先我选择原始图标:

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

    然后我使用 Graphics2D 在图像上绘制:

    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 的一个实例)

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

    【讨论】:

      猜你喜欢
      • 2019-08-31
      • 1970-01-01
      • 2012-03-06
      • 2012-05-04
      • 1970-01-01
      • 2021-12-20
      • 2010-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多