JavaFx场景构建器是否可以用来创建Java代码而不是FXML

时间:2014-08-31 06:18:44

标签: java javafx scenebuilder

我是Javafx的初学者。我发现Javafx Scene builder生成与Javafx相关的任何表单都非常酷,但它只使用fxml个文件,而不是java个文件。

例如:当我使用Scene Builder创建MenuListItems等时,它只生成具有类似html文件的源(XML输出)。

但我不想confine with the use of these XML files。那么有人知道在不使用java file的情况下处理fxml的个别技术吗?

先谢谢!

2 个答案:

答案 0 :(得分:3)

您的问题的答案 JavaFx场景构建器用于创建Java代码而不是FXML 您不能

如果您需要使用 Java来创建表示层,您必须自己编写代码并且有理由。请按照以下帖子:

JavaFX使您能够使用Java代码和名为FXML 的基于XML的语言创建UI。引入Scene Builder是为了利用FXML,通过提供DRAG n DROP功能来生成FXML代码。您可以将此视为与Window Builder for Swing类似,最终结果的差异在于FXML(.fxml)而不是Java(.java)。

基本差异b / w Java代码和FXML

Java代码

BorderPane border = new BorderPane();
Label toppanetext = new Label("Page Title");
border.setTop(toppanetext);
Label centerpanetext = new Label ("Some data here");
border.setCenter(centerpanetext);

<强> FXML

<BorderPane>
    <top>
        <Label text="Page Title"/>
    </top>
    <center>
        <Label text="Some data here"/>
    </center>
</BorderPane>

为什么使用FXML,当我可以通过JAVA代码实现相同

当我们使用JAVA进行相同操作时,您会考虑使用FXML的原因。嗯,这是你的选择!!

来自文档

  

FXML是一种基于XML的语言,提供构建结构   与代码的应用程序逻辑分开的用户界面。   这种表示和应用程序逻辑的分离是   对Web开发人员有吸引力,因为他们可以组建用户   在不掌握代码的情况下利用Java组件的接口   用于获取和填写数据

因此,FXML强制您使用MVC模式,使您的表示层与逻辑分离,使您更容易维护和编辑表示层,以及通过与Java / JavaFX无关的UI设计者< / p>

For more information and example on FXML

答案 1 :(得分:2)

SceneBuilder用于通过fxml直观地创建gui,并且根本不生成任何Java代码。这取决于开发人员。

这里有一个很好的入门教程:http://code.makery.ch/java/javafx-2-tutorial-part1/

它讨论了JavaFX与Eclipse和SceneBuilder的使用