Hallo Zusammen
Ich habe das folgende Problem:
Das Programm funktioniert in 3 von 4 Fällen, und zwar gibt es die Interfaces schön aus und bei einem falschen Ergebnis (If-Anweisung) kann man den Versuch wiederholen oder das Programm beende. Das sind zwei funktionierende Fälle.
Wenn man ein richtiges Resultat eingibt kommt das Interface "Richtig" und zeigt das eingegebene Resultat an sowie das berechnete Resultat und man kann beenden.
Was nicht funktioniert ist die Do-Schleife, welche wieder an den Anfang springen sollte und somit könnte man von vorne anfangen.
Der Boolean "loop1" wird beim drücken des Buttons "againRight" auf false geändert was die Do-Schleife bestätigt und sie sollte von vorne beginnen, jedoch tut sie das nicht.
Hat jemand eine Ahnung an was das liegen kann?
Ich habe das folgende Problem:
Das Programm funktioniert in 3 von 4 Fällen, und zwar gibt es die Interfaces schön aus und bei einem falschen Ergebnis (If-Anweisung) kann man den Versuch wiederholen oder das Programm beende. Das sind zwei funktionierende Fälle.
Wenn man ein richtiges Resultat eingibt kommt das Interface "Richtig" und zeigt das eingegebene Resultat an sowie das berechnete Resultat und man kann beenden.
Was nicht funktioniert ist die Do-Schleife, welche wieder an den Anfang springen sollte und somit könnte man von vorne anfangen.
Der Boolean "loop1" wird beim drücken des Buttons "againRight" auf false geändert was die Do-Schleife bestätigt und sie sollte von vorne beginnen, jedoch tut sie das nicht.
Hat jemand eine Ahnung an was das liegen kann?
Code:
import javafx.stage.Stage;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
public class Menu extends Application{
public static void main(String[] args) {
launch (args);
}
boolean loop1;
@Override
public void start(Stage primaryStage) {
//Buttons für das Menu
Button button1 = new Button("Kopfrechnen");
Button button2 = new Button("Personal");
Button button3 = new Button("Taschenrechner");
Button button4 = new Button("Quit");
GridPane root = new GridPane();
root.add(button1, 0, 0); root.add(button2, 1, 0);
root.add(button3, 0, 1); root.add(button4, 1, 1);
Scene scene = new Scene(root);
primaryStage.setTitle("Menu");
primaryStage.setScene(scene);
primaryStage.show();
//Button für Kopfrechner starten
button1.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
//Schleife für unendliche Wiederholungen
do {
loop1 = true;
//Getter für Zufallsgenerator
Functions functions = new Functions();
functions.Buttons();
GridPane root1 = new GridPane();
root1.add(functions.getLabel4(), 0, 0);root1.add(functions.getLabel1(), 1, 0);
root1.add(functions.getLabel5(), 0, 1);root1.add(functions.getLabel2(), 1, 1);
root1.add(functions.getTextField1(), 1, 2);
root1.add(functions.getButton5(), 1, 3);
root1.add(functions.getLabel3(), 1, 4);
Scene scene1 = new Scene(root1);
primaryStage.setTitle("!Let's Do Math!");
primaryStage.setScene(scene1);
primaryStage.show();
//Resultat prüfen mit Button
functions.getButton5().setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
int result1 = Integer.parseInt(functions.getTextField1().getText());
Label myResult = new Label(Integer.toString(result1));
//Code für falsches Resultat
if (result1 != functions.getResult0()) {
GridPane root4 = new GridPane();
root4.add(functions.getWrong1(), 0, 0);
root4.add(functions.getWrong2(), 0, 1);root4.add(myResult, 1, 1);
root4.add(functions.getWrongAgain(), 0, 2); root4.add(functions.getWrongEnd(), 1, 2);
Scene scene2 = new Scene(root4);
primaryStage.setTitle("Oh das war Falsch!");
primaryStage.setScene(scene2);
primaryStage.show();
//Zur wiederholung bei einem falschen Resultat
functions.getWrongAgain().setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
primaryStage.setTitle("!Let's Do Math!");
primaryStage.setScene(scene1);
primaryStage.show();
}
});
//Beendenbutton weiter zur Endcard
functions.getWrongEnd().setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
BorderPane root3 = new BorderPane();
root3.setCenter(functions.getEndcard1());
Scene scene3 = new Scene(root3, 360, 400);
primaryStage.setTitle("Goodbye");
primaryStage.setScene(scene3);
primaryStage.show();
}
});
//Ende der IF-Anweisung
}
//Code für richtiges Resultat
else {
Label screen2 = new Label(Integer.toString(functions.getResult0()));
Label screen3 = new Label(Integer.toString(result1));
GridPane root2 = new GridPane();
root2.add(functions.getRight1(), 0, 0);
root2.add(screen2, 0, 1);
root2.add(functions.getRight2(), 0, 2); root2.add(screen3, 1, 2);
root2.add(functions.getRightAgain(), 0, 3); root2.add(functions.getWrongEnd(), 1, 3);
Scene scene2 = new Scene(root2);
primaryStage.setTitle("!Richtig!");
primaryStage.setScene(scene2);
primaryStage.show();
//Beendenbutton weiter zur Endcard
functions.getWrongEnd().setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
BorderPane root3 = new BorderPane();
root3.setCenter(functions.getEndcard1());
Scene scene3 = new Scene(root3, 360, 400);
primaryStage.setTitle("Goodbye");
primaryStage.setScene(scene3);
primaryStage.show();
}
});
//Wiederholungsbutton
functions.getRightAgain().setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
//Schlaufe ist wieder aktiviert jedoch startet die Schlaufe nicht neu: Wieso keine Ahnung
loop1 = false;
}
});
//Ende der Else-Anweisung
}
//Ende von Button Resultatchecken
}
});
//Ende von Do-Schleife
} while (loop1 == false);
//Ende von Button Kopfrechnen
}
});
//Ende der Main Methode
}
//Ende der Klasse
}