将数据传递给 FXML - 访问现有控制器
问题: 某些数据需要传递给从 fxml 加载的场景。
解
使用 fx:controller 属性指定控制器,并从用于加载 fxml 的 FXMLLoader 实例获取在加载过程中创建的控制器实例。
添加将数据传递到控制器实例的方法,并处理这些方法中的数据。
FXML
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.text.*?>
<?import javafx.scene.layout.*?>
<VBox xmlns:fx="http://javafx.com/fxml/1" fx:controller="valuepassing.TestController">
    <children>
        <Text fx:id="target" />
    </children>
</VBox>
调节器
package valuepassing;
import javafx.fxml.FXML;
import javafx.scene.text.Text;
public class TestController {
    @FXML
    private Text target;
    public void setData(String data) {
        target.setText(data);
    }
}
用于加载 fxml 的代码
String data = "Hello World!";
FXMLLoader loader = new FXMLLoader(getClass().getResource("test.fxml"));
Parent root = loader.load();
TestController controller = loader.<TestController>getController();
controller.setData(data);