java – 如何捕获trayicon.displayMessage()鼠标点击工具提示音
发布时间:2020-12-14 05:59:53 所属栏目:Java 来源:网络整理
导读:嗨,我试图在用户点击邮件气球工具提示后显示更详细的信息. 但是,我找不到如何捕获该事件. 这可以做吗? 解决方法 1)可以通过将ActionListener添加到TrayIcon来监听MouseClickEvents,然后通过消息身体监听MouseClicked 2)(不直接询问),但是如果消息被关闭按钮
嗨,我试图在用户点击邮件气球工具提示后显示更详细的信息.
但是,我找不到如何捕获该事件. 这可以做吗? 解决方法
1)可以通过将ActionListener添加到TrayIcon来监听MouseClickEvents,然后通过消息身体监听MouseClicked
2)(不直接询问),但是如果消息被关闭按钮关闭,我不能给你一个答案,而消息从屏幕上相同的方式离开,但没有捕获任何事件 3)看起来像这个Java TrayIcon message close button应该只有一个解决方案,因为API没有实现另一种方法, import java.awt.*; import java.awt.event.*; public class FullTray { private static class ShowMessageListener implements ActionListener { private TrayIcon trayIcon; private String title; private String message; private TrayIcon.MessageType messageType; ShowMessageListener(TrayIcon trayIcon,String title,String message,TrayIcon.MessageType messageType) { this.trayIcon = trayIcon; this.title = title; this.message = message; this.messageType = messageType; } public void actionPerformed(ActionEvent e) { trayIcon.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("Message Clicked"); } }); trayIcon.displayMessage(title,message,messageType); } } public static void main(String args[]) { Runnable runner = new Runnable() { public void run() { if (SystemTray.isSupported()) { final SystemTray tray = SystemTray.getSystemTray(); Image image = Toolkit.getDefaultToolkit().getImage("gifIcon.gif"); PopupMenu popup = new PopupMenu(); final TrayIcon trayIcon = new TrayIcon(image,"The Tip Text",popup); MenuItem item = new MenuItem("Error"); item.addActionListener(new ShowMessageListener(trayIcon,"Error Title","Error",TrayIcon.MessageType.ERROR)); popup.add(item); item = new MenuItem("Warning"); item.addActionListener(new ShowMessageListener(trayIcon,"Warning Title","Warning",TrayIcon.MessageType.WARNING)); popup.add(item); item = new MenuItem("Info"); item.addActionListener(new ShowMessageListener(trayIcon,"Info Title","Info",TrayIcon.MessageType.INFO)); popup.add(item); item = new MenuItem("None"); item.addActionListener(new ShowMessageListener(trayIcon,"None Title","None",TrayIcon.MessageType.NONE)); popup.add(item); item = new MenuItem("Close"); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { tray.remove(trayIcon); } }); popup.add(item); try { tray.add(trayIcon); } catch (AWTException e) { System.err.println("Can't add to tray"); } } else { System.err.println("Tray unavailable"); } } }; EventQueue.invokeLater(runner); } private FullTray() { } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |