JavaFX auf FXML Steuerelemente zugreifen?

1 Antwort

Mit der @FXML-Annotation kannst du Felder der Controller-Klasse mit den Komponenten aus der FXML-Datei verbinden.

Beispiel:

FXML-Datei:

<VBox xmlns:fx="http://javafx.com/fxml" fx:controller="somePackage.SomeFxmlController" spacing="10">
  <children>
    <Label fx:id="someLabel" text="Some label" />
    <Button fx:id="someButton" onAction="#someEventHandler" text="Do something" />
  </children>
</VBox>

Controller-Klasse:

import javafx.event.Event;
import javafx.fxml.FXML;
import javafx.scene.control.Label;

public class SomeFxmlController {

  @FXML
  private Label someLabel;

  @FXML
  public void someEventHandler(Event e) {
    // do something ...
  }
}

Hier werden sowohl Methode, als auch Attribut mit den beiden FXML-Elementen verknüpft. Würdest du nun den Wert des Labels ändern, würde dies auch im FXML-View geschehen.