При использовании TrayIcon.displayMessage для отображения всплывающего уведомления документация на Java 6 гласит, что «нажатие на сообщение может вызвать ActionEvent».Java TrayIcon displayMessage 'может вызывать ActionEvent', когда он/нет?
'Май'? Спасибо, документация.
На моей тестовой виртуальной машине Windows 2000 нажатие на сообщение не вызывает запуск ActionEvent (к сожалению, у меня нет новых тестов Windows для тестирования), в то время как тот же код запускает его в Ubuntu и OS X.
Примечание. При нажатии на значок сам вызывает событие на слушателе мыши.
Так или иначе, мои конкретные вопросы:
Я правильно, что при нажатии на уведомление не вызвать ActionEvent в Windows 2000, или есть что-то я делаю не так?
Он работает, чтобы вызвать ActionEvent в Windows XP или Windows 7?
Минимальный пример кода ниже. Когда я запускаю это с помощью java Test
в Windows 2000, щелчок по уведомлению не генерирует никакого вывода в командной строке.
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import javax.swing.SwingUtilities;
public class Test
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
TrayIcon icon = new TrayIcon(
new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB));
icon.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent arg0)
{
System.err.println("ActionEvent: " + arg0);
}
});
try
{
SystemTray.getSystemTray().add(icon);
}
catch(AWTException e)
{
e.printStackTrace();
}
icon.displayMessage("New message", "Can you click on this?",
TrayIcon.MessageType.INFO);
}
});
}
}
Я понимаю, что, но я думаю, что было бы полезно знать (для меня и другие), на каких платформах он фактически запускает событие. – sam
О да, далекая точка;) – MadProgrammer
Очевидно, что уведомление вызывает какое-то событие, потому что приложения C реагируют, когда я нажимаю, но Java нет. Я использую windows 10 btw. – Matthew