98204
Jan 11, 2021
2358
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 639681
Url: https://administrator.de/contentid/639681
Printed on: April 29, 2024 at 15:04 o'clock
3 Comments
Latest comment
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