Heinzi1991
Erfahrenes Mitglied
Hallo,
ich muss ein Programm für die Uni in Java schreiben und bei mir funktioniert die Aktualisierung der GUI nicht.
Also kurze Erklärung meines Programms:
Ich habe ein kleines Fenster in dem ich alle Einstellungen machen kann, und dort ist ein Button mit dem das Spiel automatisch gestartet wird.
In der Klasse Playground ist nun mein Spielfeld und auch meine Spiellogik.
Das Spielfeld besteht aus mehreren Panels und aus mehreren Labels.
Der Code für die playTheGame schaut so aus:
Die Logik des Spiel funktioniert einwandfrei, aber sobald ich den Button beim ersten Fenster klicke, erscheint einfach nur ein leeres Fenster und sobald die while beendet wurde, erscheint die ganze GUI vom Fenster.
Kleine Info: hab die GUI mit IntelliJ GUI Builder gemacht.
Leider hab ich keine Ahnung was ich falsch mache, kommentiere ich die "playField.playTheGame()" aus, sehe ich die GUI vom Fenster, aber dann funktioniert die Logik nicht mehr!
ich muss ein Programm für die Uni in Java schreiben und bei mir funktioniert die Aktualisierung der GUI nicht.
Also kurze Erklärung meines Programms:
Ich habe ein kleines Fenster in dem ich alle Einstellungen machen kann, und dort ist ein Button mit dem das Spiel automatisch gestartet wird.
Java:
PlayGround playfield = new PlayGround(infoGameStates);
setVisible(false);
playfield.playTheGame();
In der Klasse Playground ist nun mein Spielfeld und auch meine Spiellogik.
Das Spielfeld besteht aus mehreren Panels und aus mehreren Labels.
Der Code für die playTheGame schaut so aus:
Java:
public void playTheGame() {
while (true) {
HashMap<Integer, Integer> nimberAtStack = new HashMap<>();
int positionNimber = 0;
nimberAtStack = lookAtNimber();
positionNimber = calculateXORSum(nimberAtStack);
updateGUI();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (positionNimber > 0) {
calculateNimberPostition(positionNimber, nimberAtStack);
} else {
if (makeNotWinMove() != 0) {
JOptionPane.showMessageDialog(rootPanel, "Player " + gameStates.getFirstPlayer() + " lose");
break;
}
}
}
}
Die Logik des Spiel funktioniert einwandfrei, aber sobald ich den Button beim ersten Fenster klicke, erscheint einfach nur ein leeres Fenster und sobald die while beendet wurde, erscheint die ganze GUI vom Fenster.
Kleine Info: hab die GUI mit IntelliJ GUI Builder gemacht.
Leider hab ich keine Ahnung was ich falsch mache, kommentiere ich die "playField.playTheGame()" aus, sehe ich die GUI vom Fenster, aber dann funktioniert die Logik nicht mehr!