Есть ли в любом случае для отображения пользовательской формы в Java, которая действует подобно TrayIcon.displayMessage()?
Есть ли в любом случае использование Java для отображения пользовательской формы / изображения, которое ведет себя подобно функции TrayIcon.displayMessage() в том смысле, что оно на некоторое время отображается прямо над панелью задач, а затем исчезает?
Я также ищу способ отображения нескольких уведомлений одновременно, отображая их друг над другом.
Если нет, как мне найти пиксельное местоположение для нижнего левого угла чуть выше системного трея?
2 ответа
Я не думаю, что есть ярлык для рисования фреймов, которые действуют так же, как стандартные TrayIcons (с кнопкой x в углу), которые поддерживают укладку, похожую на уведомления Mac Growl.
вам, вероятно, придется реализовать это самостоятельно.
Я обнаружил, что наложение таких сообщений - пустая трата времени, поскольку пользователь не будет обращать на них внимания - лучшее место для них - в области состояния приложения в простом всплывающем меню.
Вы можете использовать java.awt.GraphicsEnvironment. getLocalGraphicsEnvironment() для получения информации о рабочем столе, которая содержит getMaximumWindowBounds(), которая заботится о таких вещах, как положение панели задач.
Вы можете использовать подкласс javax.swing.JWindow, чтобы создать окно без рамки, которую можно расположить на рабочем столе относительно нижнего правого угла. Это не всегда будет работать в качестве иконки в трее по умолчанию, так как расположение генератора иконок может быть где-то еще, кроме этого. Вы можете добавить кнопку, которая действует как кнопка "x" стандартного окна рабочего стола, но она будет зависеть от платформы.
Я использую квадратные окна, которые складываются из верхнего правого угла, если я использую LTR, и это, кажется, работает хорошо.
Идите проверить Java GNOME. Он имеет привязки Java для GTK, в том числе значок состояния на панели задач и уведомления.