我正在开发一个简单的 Java swing 应用程序,它在创建时会在系统托盘中添加一个图标。我想要做的是检测用户单击此图标的时间(无论是通过左键单击还是右键单击),没有弹出菜单,我只想在单击图标时恢复应用程序。
这是我正在使用的代码:
SystemTray tray = SystemTray.getSystemTray();
Image icon = toolkit.getImage("icon.png");
ActionListener listener = new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("click detected");
}
};
TrayIcon trayIcon = new TrayIcon(icon, "Test Program", null);
trayIcon.addActionListener(listener);
tray.add(trayIcon);
但是,当我运行此程序时会发生什么,单击(左或右)没有任何效果,但是当我双击时,它会在控制台中显示消息“检测到单击”。
我该怎么做才能检测到单击?我需要为此使用 MouseListener 吗?(听说MouseListeners会出问题,ActionListeners更好)