1

実行中のアプリケーションに関連付けられていないメニュー バー アイコンを作成したいと考えています。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でこれを行うことは可能ですか?

4

1 に答える 1

2

appbundler.appを使用してアプリケーションをバンドルとしてラップする場合は、プロパティを追加してドック アイコンとメニュー バーを非表示にすることができます。LSUIElementInfo.plist

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

(例については、このapple.stackexchangeの質問を参照してください)

于 2014-05-14T21:22:22.267 に答える