javafx中fxml怎么把数据传入到initialize中
时间: 2024-09-18 19:09:12 浏览: 44
javaFX8中文教程
3星 · 编辑精心推荐
在JavaFX中,FXML(Flexible Markup Language)是一种XML文件格式,用于描述用户界面(UI)布局和组件。如果你想在FXML文件中定义的FxmlDocumentController类的initialize()方法里传递数据,通常做法是在FXML文件中通过`fx:id`属性为需要绑定的数据创建一个绑定点,然后在Java类中通过`@FXML`注解获取这个绑定。
例如,在FXML文件中:
```xml
<AnchorPane fx:id="myDataAnchorPane">
<Label text="@{viewModel.myProperty}" />
</AnchorPane>
```
在这个例子中,`myProperty`是你想在initialize方法中注入的数据。然后在对应的FxmlDocumentController类中:
```java
@FXML
private AnchorPane myDataAnchorPane;
@FXML
public void initialize(URL location, ResourceBundle resources) {
MyViewModel viewModel = ... // 获取你的视图模型实例
this.viewModel = viewModel; // 或者直接设置到控制器属性上
Label label = (Label) myDataAnchorPane.getChildren().get(0);
label.setText(viewModel.myProperty); // 使用注入的数据更新UI
}
```
在initialize方法执行时,FX会自动将`myDataAnchorPane`的`fx:id`关联的组件(`Label`在这里)和你的Java对象的属性进行绑定。
阅读全文