Предупреждение JavaFX 8 не отображается после смены приложения
ТЛ; др
Если я сначала нажму на приложение в доке моего Mac, то выберу "Показать предупреждение" из меню панели задач приложения. Оповещения показывает. Нет проблем. Но, если я выберу другое приложение (скажем, Chrome). Затем выберите "Показывать оповещение" из меню в системном трее приложения, после чего оповещение не будет отображаться.
То есть мне нужно ЗАБРОНИРОВАТЬ приложение на док-станции, затем появляется Alert.
подробности
У меня есть приложение JavaFX, и я поместил его в системный трей с меню.
Меню имеет разные вещи:
final java.awt.PopupMenu popup = new java.awt.PopupMenu();
popup.add(aboutItem);
popup.addSeparator();
popup.add(settingsItem);
popup.addSeparator();
popup.add(printJobsItem);
popup.add(exitItem);
trayIcon.setPopupMenu(popup);
Где у каждого элемента есть установленный слушатель действия:
aboutItem.addActionListener(event -> Platform.runLater(this::showAboutDialog));
settingsItem.addActionListener(event -> Platform.runLater(this::showSettingsStage));
//etc
Вопрос
Почему мне нужно "активировать" приложение (выбрав на панели операционной системы), чтобы показать предупреждение showAboutDialog?
Если мы используем Stage, то это не проблема. Вы можете переключиться на другое приложение или что-то еще, и к тому времени, когда вы нажмете "Настройки" в меню в трее приложения, появится Стадия настройки.
EDIT-1
только что протестировано на Windows 10, этого не происходит. Но на OS X El Capitan это все еще происходит.