我想创建一个与正在运行的应用程序无关的菜单栏图标。就像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中执行此操作,如果可以,如何执行此操作?
答案 0 :(得分:2)
如果您使用appbundler将应用程序包装为.app
捆绑包,则可以在LSUIElement
中添加Info.plist
属性以取消停靠图标和菜单栏。< / p>
<key>LSUIElement</key>
<string>1</string>
(有关示例,请参阅this apple.stackexchange question)