#java
#java
Вопрос:
Я пытаюсь исправить сломанный значок в трее в проекте с открытым исходным кодом. У меня почти нет опыта работы с графическими интерфейсами на Java, я заблудился. Я был бы признателен за любые советы.
Я тестирую его в KDE, отображается значок в трее и правильно изменяет статус (изображение), но заголовок неправильный (всегда JEmbeddedFrame, несмотря на то, что метод вызывается с правильной строкой), и события щелчка не запускаются.
trayIcon.addActionListener(new ActionListener() {
// this is never called :(
public void actionPerformed(final ActionEvent event) {
if (!mainFrame.isVisible()) {
mainFrame.setVisible(true);
}
mainFrame.setState(JFrame.NORMAL);
mainFrame.requestFocus();
}
});
Я даже зашел в TrayIcon
класс, чтобы обнаружить, что запускаются только события ввода / вывода мыши, но никогда не нажимаются, не отпускаются и не щелкают. Это ошибка в JRE или я что-то упускаю?
Вопрос в следующем: как исправить значок в трее, чтобы получать события мыши (в основном щелчок по одному) в KDE?
Моя версия Java — Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
, а KDE — 5.5.5 (Kubuntu LTS).
Ответ №1:
В документе JDK7 говорится, что он не поддерживает его и уже протестирован мной в JDK8, все еще не работает. Но JDK11 явно не говорит что-то подобное.
Комментарии:
1. Возможно, в java 7, который является документом Java, на который вы ссылались, но в более современных версиях, таких как 11, это больше не говорит об этом.
2. @RoddyoftheFrozenPeas не тестировал это там, к сожалению, в JDK8 это все еще не работает.
3. Вероятно, следует включить эту информацию в свой ответ. Прямо сейчас он просто говорит «это не работает», но это относится к определенным версиям.
4. @RoddyoftheFrozenPeas вы правы, спасибо за комментарий.