【发布时间】:2019-04-02 23:52:05
【问题描述】:
我开始学习 JavaFx,我发现 Java 项目有一个场景构建器,但你必须制作一个 FXML 项目。谁能向我解释差异以及两者之间的编码是否不同?与场景构建器一起工作是否值得?我正在使用 Eclipse IDE。
【问题讨论】:
-
说实话,我发现编写 GUI 代码相当简单。我还发现在 FXML 和 Java 代码之间来回切换的认知摩擦太霸道了。
我开始学习 JavaFx,我发现 Java 项目有一个场景构建器,但你必须制作一个 FXML 项目。谁能向我解释差异以及两者之间的编码是否不同?与场景构建器一起工作是否值得?我正在使用 Eclipse IDE。
【问题讨论】:
JavaFX 是您将用于创建 GUI 应用程序的图形包。
FXML 是一种 XML 格式,JavaFX 可以使用它来导入 GUI 的某些功能。您可以自己制作这些文件,但这会非常耗时,这就是 SceneBuilder 的用武之地。SceneBuilder 让您可以设计您的 GUI,然后在您编辑界面时为您制作和编辑您的 FXML 文件。
这是一个Oracle link,关于在不使用 SceneBuilder 的情况下使用 FXML 制作 GUI。
如果您在 Java 中处理图形,SceneBuilder 可能很有用,因为您可以设计自己想要的方式,而不是重复编码和启动。
这里是another link,关于使用 FXML 和 SceneBuilder 制作 GUI。
【讨论】:
为了详细说明Issac Smith's answer 是什么,基本上,FXML 文件是一组序列化的窗格/控件,您可以在代码中使用FXMLLoader 即插即用。
您总是需要一个 JavaFX 项目来运行 JavaFX 应用程序 FXML 文件,因为 FXML 文件不能自行运行。
SceneBuilder 只是一个用于可视化/设计 FXML 文件的工具,而不是在文本编辑器中输入它们。就像 Issac 提到的那样,可以在没有 SceneBuilder 的情况下创建 FXML,但这会很乏味,因为您需要将 FXML 放在 JavaFX 项目中,然后在每次更改后运行应用程序以查看视觉上发生了什么变化。
最后,也可以在没有any FXML 的情况下创建JavaFX 应用程序。所有控件都可以通过代码实例化和配置。同样,主要区别仍然是 SceneBuilder 。 JavaFX API 中的大多数控件有点纯粹是通过代码制作的。主要原因是因为使用代码更容易创建复杂的布局/渲染规则。
【讨论】: