0

我目前正在处理将 JFrame 最小化到系统托盘的问题,并且我已经成功完成了,如下所示:

    // 
    URL resource = panel.getClass().getClassLoader().getResource("boston.png");
    System.out.println("rfc95Panel.getClass().getClassLoader().getResource() is: " + rfc95Panel.getClass().getClassLoader().getResource("boston.png"));

    Image image = Toolkit.getDefaultToolkit().getImage(resource);

    //
    frame.setIconImage(image);

    // 
    if (SystemTray.isSupported()) {
        final TrayIcon icon = new TrayIcon(image);
        icon.setToolTip("Program minimised");

        // 
        icon.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(true);
                frame.setExtendedState(frame.NORMAL);
                getSystemTray().remove(icon);
            }
        });

        // Adds the specified window state listener to receive window events 
        // from this window. If l is null, no exception is thrown and no action 
        // is performed.
        frame.addWindowListener(new WindowAdapter() {

            @Override
            public void windowIconified(WindowEvent e) {
                frame.setVisible(false);
                try {
                    getSystemTray().add(icon);
                } catch (AWTException e1) {
                    e1.printStackTrace();
                }
            }
        });
    }

问题是当我最小化时,我在打开系统托盘时看不到图像/图标,即我可以看到工具提示,但我看不到与我的程序相关的图标 - 见下图

系统托盘图像

关于我缺少什么的任何想法?我觉得这可能是一些基本的东西。

4

1 回答 1

1

我遇到的上述问题的简单答案是我打算用作系统托盘图标的图像的大小。基本上我的尺寸是 64 x 64,但理想情况下应该是尺寸更小,我将图像缩小到 16 x 16。

于 2013-07-02T11:55:21.763 回答