Hey zusammen,
ich soll einen einfachen Taschenrechner mit JavaFX und dem Scenebuilder erstellen. Über eine Combobox soll die gewünschte Rechenoperation ausgewählt werden können, 2 Felder zum eintragen der Zahlen sowie 2 Buttons mit Berechnen und Beenden.
Nun habe ich einen Taschenrechner optisch erstellt, auch die Methoden und alles verbunden, aber es tut absolut nicht das was es soll und ich hab so meine Probleme mit der Combobox weil ich nicht genau weiß wie es in JavaFX umgesetzt wird.
Hier einmal mein Code vom Controller:
Und so sieht er aus:

Mein Problem:
Sobald auf "Berechnen" geklickt wird, verdoppeln sich die Einträge in der Combobox. Es wiederholt sich alles. Rechnen tut er auch nichts. Ich meine auch ich hab den Grund dafür gefunden wieso er nicht rechnet. Ich habe ein Label ergebnisAnzeige erstellt, aber nirgends mit dem ergebnis verbunden. Nur weiß ich nicht wie ich das in JavaFX machen kann? Ich dachte an setText aber das akzeptiert er nicht. Auch wüsste ich nicht an welcher Stelle. Es wird einfach mal wieder viel zu wenig erklärt zu diesem Thema in meinem Heft...
Wer kann helfen?
ich soll einen einfachen Taschenrechner mit JavaFX und dem Scenebuilder erstellen. Über eine Combobox soll die gewünschte Rechenoperation ausgewählt werden können, 2 Felder zum eintragen der Zahlen sowie 2 Buttons mit Berechnen und Beenden.
Nun habe ich einen Taschenrechner optisch erstellt, auch die Methoden und alles verbunden, aber es tut absolut nicht das was es soll und ich hab so meine Probleme mit der Combobox weil ich nicht genau weiß wie es in JavaFX umgesetzt wird.
Hier einmal mein Code vom Controller:
Java:
package taschenrechnerJavaFX;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
public class TaschenrechnerController {
@FXML private Label ergebnisAnzeige;
@FXML private ComboBox<String> auswahl;
@FXML private TextField eingabe2, eingabe1;
@FXML protected void beendenKlick(ActionEvent event) {
Platform.exit();
}
@FXML protected String berechnen(ActionEvent event) {
double zahl1, zahl2, ergebnis = 0;
boolean fehlerFlag = false;
zahl1 = Double.parseDouble(eingabe1.getText());
zahl2 = Double.parseDouble(eingabe2.getText());
String tempAuswahl = auswahl.getSelectionModel().getSelectedItem().toString();
if (tempAuswahl.equals("Addition"))
ergebnis = zahl1 + zahl2;
if(tempAuswahl.equals("Subtraktion"))
ergebnis = zahl1 - zahl2;
if(tempAuswahl.equals("Multiplikation"))
ergebnis = zahl1 * zahl2;
if(tempAuswahl.equals("Division")) {
if(zahl2!=0)
ergebnis = zahl1 / zahl2;
else
fehlerFlag = true;
}
if(fehlerFlag == false)
return Double.toString(ergebnis);
else
return ("Nicht definiert");
}
@FXML void initialize() {
auswahl.getItems().addAll("Addition", "Subtraktion", "Multiplikation", "Division");
auswahl.getSelectionModel().selectFirst();
}
}
Und so sieht er aus:

Mein Problem:
Sobald auf "Berechnen" geklickt wird, verdoppeln sich die Einträge in der Combobox. Es wiederholt sich alles. Rechnen tut er auch nichts. Ich meine auch ich hab den Grund dafür gefunden wieso er nicht rechnet. Ich habe ein Label ergebnisAnzeige erstellt, aber nirgends mit dem ergebnis verbunden. Nur weiß ich nicht wie ich das in JavaFX machen kann? Ich dachte an setText aber das akzeptiert er nicht. Auch wüsste ich nicht an welcher Stelle. Es wird einfach mal wieder viel zu wenig erklärt zu diesem Thema in meinem Heft...
Wer kann helfen?