Я пишу приложение, которое запускается в системном трее и уведомляет пользователя (то есть делает один из этих пузырей всплывающим), когда что-то происходит. Единственная проблема заключается в том, что уведомления работают только в Windows 7, а не в Windows XP.
Я протестировал его на 2 компьютерах с Windows 7 (они оба работали) и 4 компьютерах с Windows XP (ни один из них не работал). Пузырь уведомлений не отображается, и (насколько я знаю) не выдается никаких исключений, а все остальное работает как надо. Я даже тестировал его на Mac, и он работал, но он не был слишком красивым.
Вот пример моего кода.
private static TrayIcon trayIcon;
...
trayIcon = new TrayIcon(trayImage.getImage());
...
if (!SystemTray.isSupported())
{
System.out.println("SystemTray is not supported");
return;
}
final PopupMenu popup = new PopupMenu();
final SystemTray tray = SystemTray.getSystemTray();
trayIcon.setToolTip("Widget Name Here [" + role + "]");
...
try
{
tray.add(trayIcon);
}
catch (AWTException e)
{
System.err.println("TrayIcon could not be added.");
return;
}
...
//Here's where it doesn't work on XP
trayIcon.displayMessage("Connection error",
"Could not connect to server, please check your internet/VPN "
+ "connection", TrayIcon.MessageType.ERROR);
Любая помощь будет высоко ценится.
ОБНОВЛЕНИЕ: Хорошо, я только что подтвердил, что это не проблема с моей программой, а проблема с установками XP, на которых я их тестировал. Я запустил программу TrayIconDemo.java, найденную здесь на компьютере с XP, и ни одно из уведомлений не сработало. Я начинаю думать, что ничего не могу сделать, чтобы заставить его работать на одном из этих компьютеров ...