如何将变量从控制器代码传递到fxml视图?

我有自定义组件,标签很少,textField很少。 我需要将它实例化3次,但每个版本必须具有前缀为不同String的所有标签。

我的组件fxml的片段:

 

我想实现某种代码占位符,如:

  

我尽量避免逐个注入所有标签,因为我知道不可能一次性将所有标签注入控制器,如ex。 Collection

问题:如何将String从控制器代码传递到fxml视图,避免重复和不必要的工作?

您可以在FXML中使用绑定表达式从FXML名称空间中获取变量值。

在下面的示例中,我们成功注入名称“Foobar”。

foob​​ar的

inclusions.fxml

         

NamespaceAware.java

 import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.layout.Pane; import javafx.stage.Stage; public class NamespaceAware extends Application { @Override public void start(final Stage stage) throws Exception { FXMLLoader loader = new FXMLLoader(); loader.getNamespace().put("name", "Foobar"); loader.setLocation(getClass().getResource("inclusions.fxml")); Pane content = loader.load(); content.setPadding(new Insets(10)); stage.setScene(new Scene(content)); stage.show(); } public static void main(String[] args) { launch(args); } }