簡體   English   中英

在scenebuilder 17中加載自定義組件

[英]Load custom components in scenebuilder 17

我們正在開發 Javafx 項目,該項目在 Java8 上運行良好。 最近,我們用 Java17 更新了這個項目。 我們能夠為 IDEA 解決問題。

似乎在 Java 9+ 之后,他們嚴格封裝了所有類。 要使用它,我們必須在 vm 選項中使用“export”“open”關鍵字或在編譯運行時定義“ALL-UNNAMED”。

這在 IDEA 上運行良好。 現在,我們正在嘗試在場景構建器中加載 fxml 文件,但場景構建器無法找到這些類。 我們已將所有必需的 jar 文件添加到場景構建器,但仍無法加載 FXML 文件。

以下錯誤場景構建器顯示:

java.lang.ClassNotFoundException: com.sun.javafx.scene.TreeShowingExpression

我們正在使用的庫:

jfoenix.jar. fx_progress_circle.jar. fontawesomefx.jar

我們在 JFXCheckbox、JFXRadioButton、JFXSpinner 等上遇到了關於 JFX 視圖的問題。

我們嘗試了所有可能的解決方案,但無法解決。

任何幫助,將不勝感激。 謝謝。

導入 jfoenix 和 fontawesomefx 庫:

  1. 單擊場景生成器庫面板中的設置圖標
  2. 選擇 JAR/FXML 管理器
  3. 選擇搜索存儲庫
  4. 搜索 jfoenix 和 fontawesomefx
  5. 選擇以下庫:
    • com.jfoenix:jfoenix
    • de.jensd:fontawesomefx-fontawesome
  6. Scene Builder 將導入每個的最新 lib 版本:
    • com.jfoenix:jfoenix:9.0.10
    • de.jensd:fontawesomefx-fontawesome:4.7.0-9.1.2。
  7. 所有導入的新組件現在都可以在庫管理器的自定義部分中選擇。

進度圈的東西不在 Maven 中央,您需要通過“JAR/FXML 管理器”對話框的“從文件系統添加庫/FXML”選項導入它(我沒有嘗試過)。

jfoenix github 頁面說它需要 9+ 才能與 Java 9+ 一起使用。 我不認為 jfoenix 維護得很好,並且(來自 StackOverflow 上有關庫的其他一些問題),它主要適用於最近的 SceneBuilder 構建,但效果不佳,並且它的一些組件在 SceneBuilder 中表現不佳。

有關的:

同樣,fontawesomefx 有一個版本 9.1.2,其中有一個帶有自動模塊的清單 maven 存儲庫條目,它允許它工作。 我不知道該項目的最新文檔在哪里,但似乎有多個軟件包可供您使用,具體取決於您要訪問的字體庫,我只是選擇了一個使用 fontawesome 圖標庫的軟件包.

有關的:

場景

不相關的開發方法建議

我建議

  1. 通過定義 module-info.java 將您的項目更改為模塊化項目。
  2. 使用最新的穩定版本 Java 和 JavaFX (17.0.2)
  3. 使用依賴庫的最新穩定版本。
  4. 通過構建工具導入庫:
    • 除非您真的了解 Gradle,否則我會推薦 Maven。
  5. 在沒有任何 VM 選項的情況下運行應用程序以進行導出和打開等。
    • 在你的模塊信息中定義模塊使用。
  6. 確保您的應用在這些條件下運行良好(解決出現的任何問題)。
  7. 然后嘗試將您的庫和 fxml 導入到場景構建器中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM