簡體   English   中英

將字段綁定到Javafx中的控制器

[英]Binding Fields to Controllers in Javafx

我已經使用場景生成器構建了一個場景,並且有兩個文本字段屬於UI,一個用於Flavor,一個用於Topping。 在控制器中,我用@FXML注釋了每個textfield屬性。 我的問題是:如何將ui中的字段與控制器類中的屬性相關聯?

Java代碼如下所示:

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

在ui中,字段存在於場景中,但實際上沒有任何與它們相關聯的標識它們的字段。 他們需要什么嗎? 而且我還不清楚,如何確保UI中的字段與代碼中的字段之間的綁定以我希望它們的方式發生。

僅僅說還行,還不夠。 我想了解代碼如何知道將UI中的一個字段綁定到代碼中的屬性。 UI字段是通用的。 沒有標識符或分類器說,這是一種風味,而一個是一流。 如果只是“有效”,綁定如何發生?

FXMLLoader檢查fxml文件中的fx:id屬性。 如果控制器中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方法(如果存在)中,這些值才可用。 在控制器的初始化器/構造器中,它們仍然包含null

您只需要做些什么就可以了。 只是@FXML,它將UI字段與controller變量綁定。 確保將UI中的場景與場景構建器中的控制器綁定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM