98204
11.01.2021
2581
3
0
Java: GUI aktualisiert nicht
Hallo zusammen,
ich will eine Applikation programmieren in der eine Anzeige berechnet wird. Die Anzeige wird in einer Schleife immer wieder neu berechnet bis "Stop" gedrückt wird. Zwischen den Neuberechnungen habe ich eine Zeitverzögerung eingebaut.
Problem: Die GUI sollte sich nach jeder Iteration aktualisieren (deswegen der SwingWorker). Das tut sie aber nicht.
Hat jemand eine Idee wie man das fixen kann?
Danke im voraus
Internetter
ich will eine Applikation programmieren in der eine Anzeige berechnet wird. Die Anzeige wird in einer Schleife immer wieder neu berechnet bis "Stop" gedrückt wird. Zwischen den Neuberechnungen habe ich eine Zeitverzögerung eingebaut.
// .....
boolean bStopped = false;
do {
bStopped = Calculation.new_calculate(); // Calculation and display the result
SwingUtilities.invokeLater(new MyDelay());
} while (!bStopped); //
// .....
class MyDelay extends SwingWorker {
@Override
protected Object doInBackground() throws Exception {
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
}
Problem: Die GUI sollte sich nach jeder Iteration aktualisieren (deswegen der SwingWorker). Das tut sie aber nicht.
Hat jemand eine Idee wie man das fixen kann?
Danke im voraus
Internetter
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 639681
Url: https://administrator.de/contentid/639681
Ausgedruckt am: 24.11.2024 um 10:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo,
Gruß,
Peter
Zitat von @98204:
ich will eine Applikation programmieren in der eine Anzeige berechnet wird. Die Anzeige wird in einer Schleife immer wieder neu berechnet bis "Stop" gedrückt wird. Zwischen den Neuberechnungen habe ich eine Zeitverzögerung eingebaut.
Wie viele FPS macht das ganze und wie langsam guckst du?ich will eine Applikation programmieren in der eine Anzeige berechnet wird. Die Anzeige wird in einer Schleife immer wieder neu berechnet bis "Stop" gedrückt wird. Zwischen den Neuberechnungen habe ich eine Zeitverzögerung eingebaut.
Gruß,
Peter