gpt4 book ai didi

java - 在 Javafx 中将字段绑定(bind)到 Controller

转载 作者:行者123 更新时间:2023-12-02 12:22:14 24 4
gpt4 key购买 nike

我已经使用场景生成器构建了一个场景,并且有两个文本字段是 UI 的一部分,一个用于 flavor ,一个用于顶部。在 Controller 中,我用 @FXML 注释了每个文本字段属性。我的问题是:如何将 ui 中的字段关联到 Controller 类中的属性?

Java 代码如下所示:

@FXML
private TextField flavorValueField;
@FXML
private TextField toppingValueField;

在用户界面中,字段存在于场景中,但实际上没有任何与之相关的内容来标识它们。他们需要什么吗?我不清楚如何确保 UI 中的字段和代码中的字段之间的绑定(bind)以我希望的方式发生。

光说还不够,它只是有效。我想了解代码如何知道将 UI 中的一个字段绑定(bind)到代码中的一个属性。 UI 字段是通用的。没有标识符或分类器表明,这个是 flavor ,那个是配料。如果它只是“有效”,那么绑定(bind)是如何发生的?

最佳答案

FXMLLoader 检查 fxml 文件中的 fx:id 属性。如果 Controller 中存在与此属性的值匹配的 FXMLLoader 可见字段,FXMLLoader 会尝试使用反射将为包含该属性的元素创建的对象分配给该字段.

例如

<Button fx:id="foo"/> <!-- this is assigned to the foo field, if possible -->
<Button fx:id="bar"/> <!-- this is assigned to the bar field, if possible -->
@FXML
private Button bar;

@FXML
private Object foo;

请注意,这些值仅在 fxml 完成加载或在 initialize 方法(如果存在)中才可用。在 Controller 的初始化程序/构造函数中,它们仍然包含 null

关于java - 在 Javafx 中将字段绑定(bind)到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45683811/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com