我正在使用 Netbeans 开发 Java 应用程序,我想在系统托盘上创建一个托盘图标,并且当我右键单击托盘图标时将显示一个弹出菜单。
我通过拖放创建了一个 jframe 和弹出菜单。
但我有一个问题。我的弹出菜单有 2 个菜单项(Exit and 显示登录)但所选菜单项未突出显示,并且单击菜单项后,弹出菜单未关闭。
这是我的代码:
声明一些全局变量
SystemTray systemTray = null;
Image image = Toolkit.getDefaultToolkit().getImage("D:/key-16x16.png");
TrayIcon trayIcon = new TrayIcon(image);
创建并显示系统托盘图标
systemTray = SystemTray.getSystemTray();
try
{
systemTray.add(trayIcon);
} catch (AWTException ex)
{
Logger.getLogger(mainframe.class.getName()).log(Level.SEVERE, null, ex);
}
创建MouseAdapter并为托盘图标添加mouseListener
MouseAdapter trayIconMouseAdapter = new MouseAdapter()
{
// @Override
public void mouseClicked(MouseEvent e) {
trayIconMouseClicked(e);
}
};
trayIcon.addMouseListener(trayIconMouseAdapter);
处理托盘图标上的鼠标单击事件。检查是否是右键并显示弹出菜单
private void trayIconMouseClicked(java.awt.event.MouseEvent evt) {
if(SwingUtilities.isRightMouseButton(evt))
{
popupMeunu.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
但是如果我将一个按钮拖动到 jframe 并替换popupMeunu.show(evt.getComponent(), evt.getX(), evt.getY());
by popupMeunu.show(jButton1, evt.getX(), evt.getY());
一切都会变好。
我不知道为什么?请帮我解决我的问题。