Java TrayIcon.displayMessage () не работает в Windows XP - PullRequest
2 голосов
/ 22 июля 2011

Я пишу приложение, которое запускается в системном трее и уведомляет пользователя (то есть делает один из этих пузырей всплывающим), когда что-то происходит. Единственная проблема заключается в том, что уведомления работают только в 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, и ни одно из уведомлений не сработало. Я начинаю думать, что ничего не могу сделать, чтобы заставить его работать на одном из этих компьютеров ...

Ответы [ 3 ]

2 голосов
/ 26 июля 2011

Хорошо, так что я наконец нашел решение своей проблемы. Оказалось, что следующий ключ был установлен на 0 (false) по умолчанию в установках, на которых я тестировал:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\EnableBalloonTips

Чтобы включить всплывающие уведомления, просто установите значение 1.

1 голос
/ 23 июля 2011

РЕДАКТИРОВАТЬ: вы не упомянули версию JRE System try required Java6

это должен быть комментарий, но это ограничено длиной символов

возможно, есть другая причина в случае, когда Javaобновления распространяются некоторыми инструментами администрирования для AD или ZenWorks, затем иногда (на обоих win7 / Xp) необходимо удалить все установки java и установить свежую JRE вручную (но стабильная версия 1.6.022, на мой взгляд), распределение sw заканчивается без ошибок., но все (???) классы / методы / изменения, пришедшие из Java6, были недоступны, при частичном (RowSorter и т. д.) тесте заканчивался ошибкой, и я никогда не ищу известных ошибок в MS, Novell ...

1 голос
/ 22 июля 2011

У меня Windows XP и я работаю над приложением в системном трее.Я только что добавил displayMessage(), и он прекрасно работает для меня.Попробуйте упростить ваше приложение.Я уверен, что это будет работать.Найти ошибку.

...