簡體   English   中英

創建菜單欄圖標而沒有與之關聯的可見運行中的應用程序

[英]Creating a menu bar icon without having a visible running application associated with it

我想創建一個與正在運行的應用程序無關的菜單欄圖標。 就像dropbox的菜單欄圖標不會顯示為打開的應用程序一樣,而是僅顯示在菜單欄上。

到目前為止,我得到的是添加菜單欄圖標的代碼:

package tray;

import java.awt.AWTException;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.io.IOException;

import javax.imageio.ImageIO;

import logging.Logger;

public class TrayObject {
    private TrayIcon trayIcon;

    public TrayObject() {
        if(SystemTray.isSupported()) {
            try {
                trayIcon = new TrayIcon(
                            ImageIO.read(getClass().getResource("/Add.png")), 
                            "CodeLibrary");
                SystemTray.getSystemTray().add(trayIcon);
            } catch (IOException e) {
                Logger.log(this, "IOException");
            } catch (AWTException e) {
                Logger.log(this, "AWTException");
            }   
        }
    }

    public static void main(String[] args) {
        TrayObject to = new TrayObject();
    }
}

當我運行該應用程序時,菜單欄圖標將按原樣顯示。

我的系統托盤的圖像

但是,問題是我不希望應用程序“ TrayObject”具有菜單欄,也不希望在應用程序之間切換時可見。 我希望菜單欄圖標沒有與正在運行的應用程序“ TrayObject”相關聯。 用Java可以做到嗎?如果可以,怎么辦?

如果使用appbundler將應用.app打包為.app捆綁包,則可以在Info.plist添加LSUIElement屬性以LSUIElement停靠圖標和菜單欄。

<key>LSUIElement</key>
<string>1</string>

(有關示例,請參見此apple.stackexchange問​​題

暫無
暫無

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

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