JavaFX Button auf Controller Funktion zeigen?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Wie schon in deiner vorherigen Frage gezeigt: Mit setOnAction kannst du einen Event Handler an einen Button hängen. Das wäre auch dein Controller.

Wenn du nur einen Controller für alle Buttons verwenden möchtest:

Controller controller = new Controller();
for (/* ... */) {
  /* ... */
  button.setOnAction(controller);
}

Die Controller-Klasse implementiert das EventHandler-Interface und verfügt über Möglichkeiten, die notwendigen Aktionen (Addition, Subtraktion, etc.) aufzurufen.

Als ich meine ersten Schritte mit GUIs gemacht habe, hab ich auch einen einfachen Taschenrechner gebaut. Ich hab es damals einfach so gemacht, dass jeder Button dieselbe Methode aufgerufen hat und die Methode hat dann anhand der Beschriftung des Buttons entschieden, was gemacht werden soll. Ob du die Methode jetzt im FXPane oder im Controller einbaust, dürfte ziemlich egal sein. Hauptsache du hast von der Methode auf zugriff auf das "Display" des Taschenrechners.


TheStalker64 
Beitragsersteller
 20.07.2021, 16:39

Ja, so plane ich das derzeit auch. Wüsste derzeit noch nicht wie anders.

Die Idee ist aber, dass die Taschenrechnerlogik ein Schlüsselloch hat. Die Backendlogik ist also alles über Calculator.java abgehandelt. Davon hab ich eine Instanz im rootController (oben der Controller)