java - Binding Fields to Controllers in Javafx -
i have built scene in using scene builder , have 2 textfields part of ui, 1 flavor, 1 topping. in controller i've annotated each textfield attribute @fxml. question is: how associate fields in ui attributes in controller class?
the java code looks like:
@fxml private textfield flavorvaluefield; @fxml private textfield toppingvaluefield; in ui, fields exist in scene, have nothing associated them identifies them. need something? , it's not clear me, how assure binding between field in ui , field in code occur in way want them to.
it's not enough say, works. want understand how code knows bind 1 field in ui attribute in code. ui fields generic. there's no identifier or classifier says, 1 flavor , 1 topping. if "works" how binding happen?
fxmlloader checks fx:id attributes in fxml file. if there field visible fxmlloader in controller matches value of attribute, fxmlloader attempts assign object created element containing attribute field using reflection.
e.g.
<button fx:id="foo"/> <!-- assigned foo field, if possible --> <button fx:id="bar"/> <!-- assigned bar field, if possible --> @fxml private button bar; @fxml private object foo; note values become available when fxml finished loading or in initialize method, if exists. in initializer/constructor of controller still contain null.
Comments
Post a Comment