Hallo!
Ich hab folgendes Problem:
Es geht um ein kleines Quizspiel und am Ende sollen die Spieler nach Punkten sortiert werden und, mit dem letzten Platz beginnend, nacheinander angezeigt werden. Dazu folgende Methode:
Jetzt folgendes Problem:
Die ersten vier setVisible()-Aufrufe in evaluate() sind nicht sofort auf dem Bildschirm sichtbar. Erst nachdem showEvaluation() durch ist, werden die Komponenten ein- bzw. ausgeblendet. Dadurch ist mit einigen Sekunden Verzögerung (aus showEvaluation()) die gesamte Auswertung auf einmal zu sehen.
Meine Frage also: Warum??? Ich verstehs einfach nicht.
Ich hab folgendes Problem:
Es geht um ein kleines Quizspiel und am Ende sollen die Spieler nach Punkten sortiert werden und, mit dem letzten Platz beginnend, nacheinander angezeigt werden. Dazu folgende Methode:
Code:
public void evaluate() {
this.btn_evaluate.setVisible(false);
this.pnl_questionoverview.setVisible(false);
this.game.evaluate(); // beendet das Spiel und sortiert die Spieler
this.pnl_players.setVisible(false);
this.pnl_evaluation.setVisible(true);
this.pnl_evaluation.showEvaluation(this.game.getPlayers());
this.btn_exit.setVisible(true);
}
Code:
public void showEvaluation(Player[] players) {
for (int i = 0; i < this.lbls_place.length; i++) {
this.lbls_place[i].setVisible(false);
}
int place = 0;
for (int i = 0; i < players.length; i++) {
if (i == 0 || players[i].getScore() < players[i-1].getScore()) {
place++;
}
this.lbls_place[i].setText(place + ". " + players[i].getName() + " (" + players[i].getScore() + ")");
}
final int timeout = 1000;
long time = System.currentTimeMillis();
while (System.currentTimeMillis() - timeout < time);
for (int i = players.length - 1; i >= 0; i--) {
this.lbls_place[i].setVisible(true);
if (i > 0 && players[i].getScore() < players[i-1].getScore()) {
time = System.currentTimeMillis();
while (System.currentTimeMillis() - timeout < time);
}
}
}
Jetzt folgendes Problem:
Die ersten vier setVisible()-Aufrufe in evaluate() sind nicht sofort auf dem Bildschirm sichtbar. Erst nachdem showEvaluation() durch ist, werden die Komponenten ein- bzw. ausgeblendet. Dadurch ist mit einigen Sekunden Verzögerung (aus showEvaluation()) die gesamte Auswertung auf einmal zu sehen.
Meine Frage also: Warum??? Ich verstehs einfach nicht.