JavaFX应用程序隐藏OSX停靠图标

时间:2014-06-19 16:59:14

标签: java macos javafx icons uielement

我需要隐藏我的javafx应用程序的停靠图标。在普通的Java应用程序中,这可以通过以下属性来实现:

System.setProperty(“apple.awt.UIElement”,“true”);

但是,这似乎不适用于JavaFX。

谢谢!

2 个答案:

答案 0 :(得分:2)

试过了。您必须修改* .app / Contents / Info.plist并添加

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

简单示例:

    <?xml version="1.0" ?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
     <dict>
     <key>LSUIElement</key>
    <string>1</string>
...

对我而言,它适用于捆绑的javaFX应用程序

答案 1 :(得分:2)

根据JavaFX,您无法在JavaFX应用程序中隐藏停靠图标。请查看此link

隐藏停靠栏图标有两种方法。

  • Apple标准方式,只需修改* .app / Contents / Info.plist并添加即可 <key>LSUIElement</key> <string>1</string>
  • 以AWT应用程序启动您的应用程序并使用系统属性隐藏停靠栏图标。设置系统属性调用后,JavaFX主方法和JavaFX应用程序将立即接管,没有停靠图标。请参阅下面的示例代码段。
/**
 - This class is intended to start application as AWT application before initializing
 - JavaFX application. JavaFX does not support dock-icon-less application so we are 
 - creating JavaFX application from AWT application so that we can achieve the desired
 - functionality.
 - */

public class AWTMain {

    public static void main(String[] args) {

        // This is awt property which enables dock-icon-less
        // applications 
        System.setProperty("apple.awt.UIElement", "true");
        java.awt.Toolkit.getDefaultToolkit();

        // This is a call to JavaFX application main method.
        // From now on we are transferring control to FX application. 
        FXMain.main(args);
    }
}

这里FXMain被称为主类方法的前一类。

如果你正在使用maven和其他地方,你也需要修改你的.pom文件,你提到应用程序的主类。

这是我在这里的第一个答案,对于格式化很抱歉。