我在 Mac OS X 下使用 OpenJFX,我观察到我的应用程序有一个奇怪的行为。
我的环境是
OpenJDK Runtime Environment AdoptOpenJDK (build 15+36)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 15+36, mixed mode, sharing)
我的应用程序使用 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 调用时,应用程序支持系统菜单栏
当使用 -splash 选项调用时,菜单位于应用程序内部
有人见过类似的行为吗?您知道是否已经针对 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/