【发布时间】:2026-01-08 14:20:06
【问题描述】:
我需要隐藏我的 javafx 应用程序的停靠图标。在普通的 java 应用程序中,这可以通过以下属性来实现:
System.setProperty("apple.awt.UIElement", "true");
但是,这似乎不适用于 JavaFX。
谢谢!
【问题讨论】:
标签: java macos javafx icons uielement
我需要隐藏我的 javafx 应用程序的停靠图标。在普通的 java 应用程序中,这可以通过以下属性来实现:
System.setProperty("apple.awt.UIElement", "true");
但是,这似乎不适用于 JavaFX。
谢谢!
【问题讨论】:
标签: java macos javafx icons uielement
根据 JavaFX,您无法在 JavaFX 应用程序中隐藏停靠图标。请查看此link。
有两种方法可以隐藏停靠图标。
<key>LSUIElement</key>
<string>1</string>。 /**
- 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 被称为具有 main 方法的前一个类。
如果您使用 maven 和其他您提到应用程序的主类的地方,您还需要修改 .pom 文件。
这是我在这里的第一个答案,很抱歉格式化。
【讨论】:
刚刚试了一下。您必须修改 *.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 应用程序
【讨论】: