3

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 を使用する最良の方法は何ですか?

ありがとう、カルステン

4

1 に答える 1

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; を追加しないことによって。UI が機能するようになりました。しかし、マウスのドラッグ アンド ドロップで非常にファンキーなエラーが発生します。

すべての貢献者に感謝します - HiDPI の問題は私を本当に悩ませていましたが、他のスレッドはすべてそれが修正され、「ちょうど機能している」ことを示していました。これが誰かに役立つことを願っています。

于 2020-10-30T09:06:06.640 に答える