在 scenebuilder 17 中加载自定义组件
Load custom components in scenebuilder 17
我们正在开发 Javafx 项目,该项目在 Java8 上运行良好。最近,我们用 Java17 更新了项目。我们能够解决 IDEA 的问题。
好像在Java 9+之后都严格封装了类。要使用它,我们必须在 vm 选项中使用“export”“open”关键字或在编译运行时定义“ALL-UNNAMED”。
这是 运行 在 IDEA 上的完美表现。现在,我们正尝试在场景生成器中加载 fxml 文件,但场景生成器无法找到这些文件 类。我们已将所有必需的 jar 文件添加到 scenebuilder,但仍然无法加载 FXML 文件。
场景生成器显示以下错误:
java.lang.ClassNotFoundException: com.sun.javafx.scene.TreeShowingExpression
我们正在使用的库:
jfoenix.jar. fx_progress_circle.jar. fontawesomefx.jar
我们在 JFXCheckbox、JFXRadioButton、JFXSpinner 等的 JFX 视图上遇到问题
我们已经尝试了所有可能的解决方案,但无法解决。
如有任何帮助,我们将不胜感激。谢谢。
如评论中所述,当前使用最新版本的 jfoenix 和 SceneBuilder,即使您执行此 post 中的步骤:
JFXSpinner, JTextfield does not seems to work on scenebuilder version 17. There is probably more controls that are not working too.
如果您遵循这些步骤并发现明显的错误,那么您可能希望将这些错误报告给 jfoenix 团队。
正在导入 jfoenix 和 fontawesomefx 库:
- 单击 Scene Builder 库面板中的设置图标
- 选择JAR/FXML经理
- 选择搜索存储库
- 搜索 jfoenix 和 fontawesomefx
- 选择以下库:
- com.jfoenix:jfoenix
- de.jensd:fontawesomefx-fontawesome
- Scene Builder 将导入每个的最新 lib 版本:
- com.jfoenix:jfoenix:9.0.10
- de.jensd:fontawesomefx-fontawesome:4.7.0-9.1.2.
- 所有导入的新组件现在都可以在库管理器的自定义部分中选择。
progress circle thing 不在 Maven 中心,您需要通过“JAR/FXML 管理器”对话框的“从文件系统添加 Library/FXML”选项导入它(我没试过)。
jfoenix github page 说需要 9+ 才能使用 Java 9+。
我不认为 jfoenix 维护得很好(来自 Whosebug 上关于库的其他一些问题),它主要在最近的 SceneBuilder 构建中工作,但效果不佳,并且它的一些组件在 SceneBuilder 中表现不佳。
相关:
同样,fontawesomefx 的版本是 9.1.2,它有一个清单,其中包含一个自动模块 maven repo 条目,这使得它可以工作。我不知道该项目的 up-to-date 文档在哪里,但根据您要访问的字体库,您可以使用多个包,我只是选择了使用 fontawesome 图标库的包.
相关:
- Unable to import certain classes in fontawesomefx after updating for Java 9 / Java 11
JavaFX 8 到 JavaFX 17 转换方法建议
我建议:
- 通过定义 module-info.java.
将项目更改为模块化项目
- 使用最新稳定版 Java 和 JavaFX (17.0.2)
- 使用最新的稳定版本的依赖库。
- 通过构建工具导入库:
- 我会推荐 Maven,除非你真的懂 Gradle。
- 运行 没有任何用于导出和打开等 VM 选项的应用程序。
- 在您的 module-info.
中定义模块使用信息
- 确保您的应用在这些条件下正常运行(解决出现的任何问题)。
- 然后尝试将相同的库版本和您的 fxml 导入场景生成器。
我们正在开发 Javafx 项目,该项目在 Java8 上运行良好。最近,我们用 Java17 更新了项目。我们能够解决 IDEA 的问题。
好像在Java 9+之后都严格封装了类。要使用它,我们必须在 vm 选项中使用“export”“open”关键字或在编译运行时定义“ALL-UNNAMED”。
这是 运行 在 IDEA 上的完美表现。现在,我们正尝试在场景生成器中加载 fxml 文件,但场景生成器无法找到这些文件 类。我们已将所有必需的 jar 文件添加到 scenebuilder,但仍然无法加载 FXML 文件。
场景生成器显示以下错误:
java.lang.ClassNotFoundException: com.sun.javafx.scene.TreeShowingExpression
我们正在使用的库:
jfoenix.jar. fx_progress_circle.jar. fontawesomefx.jar
我们在 JFXCheckbox、JFXRadioButton、JFXSpinner 等的 JFX 视图上遇到问题
我们已经尝试了所有可能的解决方案,但无法解决。
如有任何帮助,我们将不胜感激。谢谢。
如评论中所述,当前使用最新版本的 jfoenix 和 SceneBuilder,即使您执行此 post 中的步骤:
JFXSpinner, JTextfield does not seems to work on scenebuilder version 17. There is probably more controls that are not working too.
如果您遵循这些步骤并发现明显的错误,那么您可能希望将这些错误报告给 jfoenix 团队。
正在导入 jfoenix 和 fontawesomefx 库:
- 单击 Scene Builder 库面板中的设置图标
- 选择JAR/FXML经理
- 选择搜索存储库
- 搜索 jfoenix 和 fontawesomefx
- 选择以下库:
- com.jfoenix:jfoenix
- de.jensd:fontawesomefx-fontawesome
- Scene Builder 将导入每个的最新 lib 版本:
- com.jfoenix:jfoenix:9.0.10
- de.jensd:fontawesomefx-fontawesome:4.7.0-9.1.2.
- 所有导入的新组件现在都可以在库管理器的自定义部分中选择。
progress circle thing 不在 Maven 中心,您需要通过“JAR/FXML 管理器”对话框的“从文件系统添加 Library/FXML”选项导入它(我没试过)。
jfoenix github page 说需要 9+ 才能使用 Java 9+。 我不认为 jfoenix 维护得很好(来自 Whosebug 上关于库的其他一些问题),它主要在最近的 SceneBuilder 构建中工作,但效果不佳,并且它的一些组件在 SceneBuilder 中表现不佳。
相关:
同样,fontawesomefx 的版本是 9.1.2,它有一个清单,其中包含一个自动模块 maven repo 条目,这使得它可以工作。我不知道该项目的 up-to-date 文档在哪里,但根据您要访问的字体库,您可以使用多个包,我只是选择了使用 fontawesome 图标库的包.
相关:
- Unable to import certain classes in fontawesomefx after updating for Java 9 / Java 11
JavaFX 8 到 JavaFX 17 转换方法建议
我建议:
- 通过定义 module-info.java. 将项目更改为模块化项目
- 使用最新稳定版 Java 和 JavaFX (17.0.2)
- 使用最新的稳定版本的依赖库。
- 通过构建工具导入库:
- 我会推荐 Maven,除非你真的懂 Gradle。
- 运行 没有任何用于导出和打开等 VM 选项的应用程序。
- 在您的 module-info. 中定义模块使用信息
- 确保您的应用在这些条件下正常运行(解决出现的任何问题)。
- 然后尝试将相同的库版本和您的 fxml 导入场景生成器。