如何使用Java 11启动Scenebuilder

时间:2018-09-05 20:29:47

标签: 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的最佳方法是什么?

谢谢,卡斯滕

1 个答案:

答案 0 :(得分:0)

我一直在寻求答案-在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问题确实使我感到困扰,而其他所有线程都指出它是固定的,并且“正常工作”。希望这对某人有帮助。