java - 托盘图标根本不显示在 java 中

标签 java trayicon

我一整天都在尝试添加我的托盘图标,但它不起作用。我将图标文件存储在 netbeans src/myproject/

我已经尝试了无数种不同的路径,甚至直接指向我的文件,但似乎都不起作用。我很确定我的代码中有些东西不起作用,我根本看不到它。

public void createSystemTrayIcon() {

if (SystemTray.isSupported()) {
    SystemTray tray = SystemTray.getSystemTray();
    Image img = Toolkit.getDefaultToolkit().getImage("smallicon.ico");

    PopupMenu popup = new PopupMenu();

    final MenuItem menuExit = new MenuItem("Quit");

    MouseListener mouseListener =
        new MouseListener() {
        public void mouseClicked(MouseEvent e) {
            show();
        }

        public void mouseEntered(MouseEvent e) {
        }

        public void mouseExited(MouseEvent e) {
        }

        public void mousePressed(MouseEvent e) {
        }

        public void mouseReleased(MouseEvent e) {
        }
    };

    ActionListener exitListener =
        new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            Runtime r = Runtime.getRuntime();
            System.out.println("Exiting...");
            r.exit(0);
        }
    };

    menuExit.addActionListener(exitListener);
    popup.add(menuExit);

    final TrayIcon trayIcon = new TrayIcon(img, "ESOLeaderboards", popup);

    ActionListener actionListener =
        new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                trayIcon.displayMessage("ESOLeaderboards ","version: EU 1.0",
                        TrayIcon.MessageType.INFO);
        }
    };

    trayIcon.setImageAutoSize(true);
    trayIcon.addActionListener(actionListener);
    trayIcon.addMouseListener(mouseListener);

    try {
        tray.add(trayIcon);
    } catch (AWTException e) {
        System.err.println("TrayIcon could not be added.");
    }

} else {
    //  System Tray is not supported
}

最佳答案

Toolkit.getDefaultToolkit().getImage("smallicon.ico"); 仅支持 JPG、PNG 和 GIF 图像。

它不支持 ico 图片。使用另一张图片。

关于java - 托盘图标根本不显示在 java 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31054799/

相关文章:

java - 如何防止 Eclipse 在打开新文件时使用现有文件选项卡

c++ - 如何正确更新托盘通知图标?

java - 验证错误后,后续的 ajax 请求从 UI 组件而不是 Bean 获取值

java - 如何通过单元测试验证是否记录了错误

windows - 你能有一个只包含托盘(通知)图标的 win32 程序吗?

python - 如何使用 PyQt 或 PySide 在系统托盘中显示一些文本而不是图标?

Delphi - 如何找到重复出现的 "ghost"托盘气球弹出窗口的来源?

c# - 在 C# WPF 中单击托盘通知后,第一次右键单击时不会打开上下文菜单?

java - 检查 Web 服务输入中的问号

java - 使用 Apache HttpClient 通过 SSL 身份验证发送 HTTP 请求