Frage von FitnHealthy, 34

JavaFX Anwendung mit SceneBuilder 2.0?

Hallo Leute, kurze Frage.

Ich habe ein Button "Start" fx:id = btStart. Wenn ich auf diesen Button klicke 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 ihr da evtl ein kleines Beispiel für mich, das wäre sehr hilfreich vielen Dank.

Expertenantwort
von KnusperPudding, Community-Experte für Java, 11

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());

Keine passende Antwort gefunden?

Fragen Sie die Community