JavaFX:使用 -splash 选项启动时 useSystemMenuBar 出现问题

标签 java javafx

我在 Mac OS X 下使用 OpenJFX,我观察到我的应用程序有一个奇怪的行为。

我的环境是

<表类="s-表"> <头> 软件 版本 <正文> 操作系统 OS X El Capitan (10.11.6) Java openjdk version "15"2020-09-15
OpenJDK Runtime Environment AdoptOpenJDK (build 15+36)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 15+36, mixed mode, sharing) OpenJFX 15.0.1

我的应用程序使用 Mac OS X 的系统菜单栏

menuBar.setUseSystemMenuBar(true)

当使用 Java 从命令行启动我的应用程序时,一切正常。当我在开始时添加 -splash 选项时,菜单出现在应用程序内部而不是 Mac OS 系统菜单中。

我认为这可能是 Java 本身或 Java FX 的错误,我不确定。

我的演示应用程序是由两个类构建的

public class Launcher {
    public static void main(String[] args) {
        MyApp.runApp(args);
    }
}

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class MyApp extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        String javaVersion = System.getProperty("java.version");
        String javafxVersion = System.getProperty("javafx.version");
        Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
        MenuBar menuBar = new MenuBar(new Menu("TEST"));
        menuBar.setUseSystemMenuBar(true);
        Scene scene = new Scene(new VBox(menuBar, new StackPane(l)), 640, 480);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void runApp(String[] args) {
        launch(args);
    }
}

当不使用 -splash 调用时,应用程序支持系统菜单栏

My demo app with system menu bar

当使用 -splash 选项调用时,菜单位于应用程序内部

My demo app ignoring system menu bar

有人见过类似的行为吗?您知道是否已经针对 Open Java 或 Open JavaFX 提交了错误?我什么也没找到。

您认为提交错误的正确项目是 Open Java 还是 Open Java FX?

提前致谢 托斯滕

最佳答案

我询问了 Open FX 新闻组的开发人员,他们将我转到了 Java bug parade。

列表中已经有一个 Unresolved 错误:https://bugs.openjdk.java.net/browse/JDK-8153381

这个问题已有将近 5 年的历史,优先级为 4,因此很快得到修复的可能性很小。

关于JavaFX:使用 -splash 选项启动时 useSystemMenuBar 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65511188/

相关文章:

java - 将字符串资源 ID 数组与 ListAdapter 一起使用吗?

JavaFX透明舞台和场景

java - 如何在JavaFX饼图中显示值?

java - 对于 OWL A 级;获取 A 为其域的所有属性

java - Java SHA1 与 JavaScript SHA1 的不同

java - 无法在Raspberry Pi上加载JNI相关应用程序

java - 在表中显示属性

Java/Hibernate - 继承存储库架构

java - 在 Eclipse 中设置 JavaFX 独立构建时遇到问题

java - 从 sbt 0.10.1 运行 JavaFx 2.0 beta 应用程序时抛出 InterruptedException