Java 创建菜单栏图标,而不具有与其关联的可见正在运行的应用程序
我想创建一个与正在运行的应用程序无关的菜单栏图标。就像dropbox的菜单栏图标不作为打开的应用程序出现一样,它只出现在菜单栏上Java 创建菜单栏图标,而不具有与其关联的可见正在运行的应用程序,java,macos,notification-area,Java,Macos,Notification Area,我想创建一个与正在运行的应用程序无关的菜单栏图标。就像dropbox的菜单栏图标不作为打开的应用程序出现一样,它只出现在菜单栏上 <key>LSUIElement</key> <string>1</string> 到目前为止,我得到的是添加菜单栏图标的代码: package tray; import java.awt.AWTException; import java.awt.SystemTray; import java.awt.TrayIc
<key>LSUIElement</key>
<string>1</string>
到目前为止,我得到的是添加菜单栏图标的代码:
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中执行此操作,如果可以,如何执行?如果使用将应用程序包装为
.app
捆绑包,则可以在Info.plist
中添加LSUIElement
属性以抑制停靠图标和菜单栏
<key>LSUIElement</key>
<string>1</string>
LSUIElement
1.
(参见示例)