如何使用java场景构建器从fxml获取值

时间:2013-09-26 09:46:09

标签: java javafx-2 fxml

我是Javafx的新人。我正在使用Java场景构建器来创建表单。当我保存它时,它会创建一个fxml文件。这是我表格的代码..

<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>

<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-    Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0"   xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2">
<children>
<Label layoutX="118.0" layoutY="95.0" prefWidth="82.0" text="Username" />
<TextField layoutX="200.0" layoutY="95.0" prefWidth="143.0" />
<TextField layoutX="200.0" layoutY="137.0" prefWidth="143.0" />
<Label layoutX="118.0" layoutY="143.0" prefWidth="61.0" text="Password" />
<Button layoutX="244.0" layoutY="190.0" mnemonicParsing="false" text="submit" />
</children>
</AnchorPane>

enter image description here 现在我想获取这些字段的值,以便将其放入数据库中..请任何人帮助我。

2 个答案:

答案 0 :(得分:2)

如果您实际使用的是SceneBuilder,则可以在here中设置fx:id。然后选择如果你构建FXML将实例化的Controller类(在本例中我的是de.thatsich.bachelor.javafx.DisplayPresenter

在此控制器中,您应该有一个@FXML字段,其完全与您在fx:id - 文件中提供的FXML同名。如果您愿意,这些字段可以是私有的。

例如:

我有this Button:此按钮的相应代码及其onClickAction将为

<强> DisplayPresenter.java

@FXML private Button nodeButtonAddImage;
@FXML private void onAddImageAction() throws IOException {
...
}

正如您所看到的,您不需要自己实例化Button。 FXMLLoader将为您完成此任务。

答案 1 :(得分:1)

在您的FXML组件中添加fx:id =“myWidget”,例如<Button fx:id="myButton" .../>

然后添加一个在FXML中声明的java控制器,并使用注释@FXML注入其中的组件

@FXML
private Button myButton;

一旦你在java中获得它,你可以访问任何属性,对于你的情况它应该是textInput.getText();