收到通知后需要闪烁托盘图标。为此我有两张图片。我正在使用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();
答案 0 :(得分:0)
不确定您是如何通过Thread runnable()
实现此目的的
您可以使用TrayIcon创建托盘图标。要添加弹出窗口,您可以使用方法setPopupMenu(PopupMenu popup)功能。
答案 1 :(得分:0)
使用空白图标或不同颜色的图标
简单替换TrayIcon的图像答案 2 :(得分:0)
您不应删除添加完整的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();
原因:每次从systemtray添加或删除trayicon时,操作系统可能会重新排列其他当前显示的图标。但是当你只是替换图标图像时,就不会出现重新排列。