繁体   English   中英

Java:接收通知时如何闪烁trayicon?

[英]Java: How to blink trayicon when receiving notifications?

收到通知后需要闪烁托盘图标。 为此,我有两个图像。 我正在使用Thread runnable()并以一定的间隔使线程进入睡眠状态,添加和删除图像。 这工作正常,但是当闪烁时,任务栏中出现的所有其他任务栏图标也会闪烁。 不确定这是否是一种好方法。

new Thread(new Runnable() {
    public void run() {
        try {

            for(int i=0; i<count; i++) {
                remove(Image2);
                add(Image1)
                long intratime=1001*1l;
                Thread.sleep(intratime);
                remove(Image1);
                add(Image2);
                long intertime=1001*1l;
                Thread.sleep(intertime);
            }

        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
}}).start();

不确定如何通过Thread runnable()实现此功能。
您可以使用TrayIcon创建任务栏图标。 要添加弹出窗口,可以使用setPopupMenu(PopupMenu popup)函数的方法。

简单地用空白图标或其他彩色图标替换TrayIcon的图像

您不应删除添加完整的TrayIcon ,而应替换TrayIcon的图像,例如:

new Thread(new Runnable() {
    public void run() {
        try {
            TrayIcon trayIcon = new TrayIcon(Image1);
            SystemTray.getSystemTray().add(trayIcon);
            long intratime=1001*1l;
            for(int i=0; i<count; i++) {
                Thread.sleep(intratime);
                trayIcon.setImage(Image2);
                Thread.sleep(intratime);
                trayIcon.setImage(Image1);
            }
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
}}).start();

原因:每次在系统托盘中添加或删除托盘图标时,操作系统都可能会重新排列其他当前显示的图标。 但是,当您仅替换图标图像时,就不会发生重新排列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM