javafx 将数据传递到FXML-指定控制器实例
示例
问题:一些数据需要传递到从fxml加载的场景。
解
FXMLLoader使用稍后用于加载fxml的实例设置控制器。
加载fxml之前,请确保控制器包含相关数据。
注意:在这种情况下,fxml文件不得包含该fx:controller属性。
XML文件
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.scene.layout.*?>
<VBox xmlns:fx="http://javafx.com/fxml/1">
<children>
<Text fx:id="target" />
</children>
</VBox>控制者
import javafx.fxml.FXML;
import javafx.scene.text.Text;
public class TestController {
private final String data;
public TestController(String data) {
this.data= data;
}
@FXML
private Text target;
public void initialize() {
//注入字段后处理数据
target.setText(data);
}
}用于加载fxml的代码
String data = "你好,世界!";
FXMLLoader loader = new FXMLLoader(getClass().getResource("test.fxml"));
TestController controller = new TestController(data);
loader.setController(controller);
Parent root = loader.load();
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西