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