簡體   English   中英

JFrame-最小化JFrame后,圖標未顯示在Sys托盤上

[英]JFrame - Icon not showing on Sys tray when JFrame has been minimised

我目前正在設法將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();
                }
            }
        });
    }

問題是最小化時,打開系統托盤時看不到圖像/圖標,即可以看到工具提示,但看不到與程序相關的圖標-請參見下圖

系統托盤映像

關於我所缺少的任何想法嗎? 我覺得這可能是基本的東西。

我遇到的上述問題的簡單答案是打算用作系統任務欄圖標的圖像大小。 基本上我的尺寸是64 x 64,但理想情況下應該是尺寸較小,在我的情況下,我將圖像縮小到16 x 16。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM