javafx - 如何使用 Java 11 启动 Scenebuilder

标签 javafx scenebuilder javafx-11

在通往 Java 11 的路上,我正在检查我的工具包, 其中包括 SceneBuilder。

我将 java-11 与 javafx-sdk-11 结合使用,并且 使用

启动 SceneBuilder

/opt/jdk-11/bin/java --module-path javafx-sdk-11/lib --add-modules=javafx.controls,javafx.fxml,javafx.web,javafx.swing -jar scenebuilder- 10.0.0-all.jar

UI 看起来不错,但任何创建场景的尝试都会出现一些错误:

    (java:10329): GLib-GObject-WARNING **: gsignal.c:2451: signal 'expose-event' is invalid for instance '0x7f395831e720' of type 'GtkWindow'
    Sep. 05, 2018 10:26:17 NACHM. com.oracle.javafx.scenebuilder.app.SceneBuilderApp$SceneBuilderUncaughtExceptionHandler uncaughtException
    SEVERE: An exception was thrown:

java.lang.reflect.InaccessibleObjectException: Unable to make void javafx.fxml.FXMLLoader.setStaticLoad(boolean) accessible: module javafx.fxml does not "opens javafx.fxml" to unnamed module @42efe4f4

在 Java 11 中使用 Scenebuilder 的最佳方式是什么?

谢谢,卡斯滕

最佳答案

我在 HiDPI 配置上的 Linux 上运行 SceneBuilder 的问题上寻找了高低的答案 - 起初这个线程似乎无害且与 HiDPI 问题无关 - 但它通过一些响应提供了答案 -如果可以的话,我会总结一下:

把它们放在一起;适用于 GTK 上的 Ubuntu 20

cd /opt/SceneBuilder
java --module-path /opt/javafx-sdk-11.0.2/lib \
  --add-modules=javafx.controls,javafx.fxml,javafx.web,javafx.swing \
  --add-opens javafx.fxml/javafx.fxml=ALL-UNNAMED \
  -Dglass.gtk.uiScale=2.0 -Djdk.gtk.version=2 \
  -jar app/scenebuilder-11.0.0-all.jar

我也不得不

sudo apt install libcanberra-gtk-module libcanberra-gtk3-module

去除启动 SceneBuilder 时的相关错误警告。

根据您的安装更改以下路径:

  • 记下 JavaFX SDK 的安装位置(在 --module-path 中指定)
  • 记下SceneBuilder的位置
  • 记下 uiScale 比例因子。调整它以使 SceneBuilder 可用。
  • 不添加 gtk.version;产生了一个可用的用户界面;但是鼠标拖放时会出现非常奇怪的错误。

非常感谢所有贡献者 - HiDPI 问题真的让我很困扰,而其他线程都指向它已修复并且“正在工作”。希望这对某人有所帮助。

关于javafx - 如何使用 Java 11 启动 Scenebuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52192964/

相关文章:

java - 如何解决javaFx中的TARGETINVOCATIONEXCEPTION?

java - 为 anchor Pane 设置类 Controller

maven - 如何在不通过 CMD 提供 VM args 的情况下执行 JAVA FX 11 JAR

javafx - SwingFXUtils 发生了什么?

JavaFX 在 SplitPane 中切换场景?

JavaFx 通过单击专注于 Pane

java - FXML:ImageViews 显示在 SceneBuilder 中但不在实际应用程序中

JavaFX:BorderPane 的布局问题 - 错误还是用户错误?

java - JavaFX 中任何类型的动画或时间线都会占用过多的 CPU

java - 无法使 TableView 的 "Select All"CheckBox 工作 (JavaFX)