JavaFX Anwendung mit SceneBuilder 2.0?

1 Antwort

Wenn du eine JavaFX Anwendung mit Scenebuilder, bzw. mit einer: FXML erstellst, entwirfst du damit ja erstmal nur das Layout.

Damit deine Java-Klasse auf die Felder reagiert, muss deine Controller Klasse das Interface: "Initializable" implementieren.

In dieser Klasse solltest du auch noch die FXML Datei laden, und mitteilen, welche Klasse die Controller-Klasse ist:

FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("MeineAnwendung.fxml"));
fxmlLoader.setController(this);

Anschließend kannst mit FXML-Deklarierte Variablen ansprechen.
Beispiel Deklaration (Variablenname = fx:id):

@FXML
private Button btStart;

Durch die Implementation von Initializable erhälst du deiner Controller-Klasse die Methode:

public void initialize(URL location, ResourceBundle resources) {

}

Nachdem initialize ausgeführt wurde, stehen dir die FXML Variablen zur verfügung.

Wenn ich auf diesen Button klicke 

fügst du hier einen EventHandler<ActionEvent> an via: setOnAction().

btStart.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
  ....
}
});

möchte ich, dass die Zahlen, die in meinem Eingabefeld TextField "Eingabe" fx:id = tbEingabe stehen, in meinem Ausgabefeld Label "Ausgabe" fx:id lbAusgabe erscheinen. Habt

lbAusgabe.setText(tbEingabe.getText());