[英]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.