JavaFX auf FXML Steuerelemente zugreifen?
Ich habe bis jetzt die Fenster und die Steuerelemente in Java in der Main Methode geschieben, jetzt wollte ich den SceeneBuilder ausprobieren.
Allerdings finde ich keine richtige lösung wie ich auf die Steuerelemente zugreifen kann.
Also
Wie kann ich in der Main Klasse von eines JavaFX Programms auf die Steuerelemente in einer FXML-Datei zugreifen?
Vielen Dank im vorraus!
lg
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren, Java
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.