Hallo!
Ich hab ein Problem bei meiner akutellen Java Entwicklung.
Und zwar hat mein Programm ein GUI in dem verschiedene Daten
angezeigt werden. Beispielsweise werden E-mail abgerufen und
sollen in einem Textfenster angezeigt werden. Das Problem ist nun
das obwohl ich nach jeder E-mail den neuen Text in das Textfenster
dazufüge, wird erst nach abrufen aller Mails das GUI aktualisiert!?
Ich versteh das nicht wirklich, habe jetzt jedoch mitbekommen das
es wohl etwas mit invokeLater beim aufrufen der GUI am anfang des
Programmes zu tun hat. Vielleicht kann mir jemand von euch helfen
bzw. erklären warum und wieso das so ist.
Hier zum Code:
Aus der Main.java rufe ich die folgende Funktion in der NewJFrame.java
auf:
Nun hat sich die Grafische Oberfläche geöffnet und ich tue alle weiten
abarbeitungen direkt durch die auf die Oberfläche gesetzten Buttons
steuern.
Wie könnte ich denn nun beispielswese eine For-Schleife, die ich
über einen Button starte in jedem durchlauf eine Textbox aktuallisieren
lasse. Den Code würde ich quasi folgendermaßen schreiben:
Bei meiner Methode würde einfach am ende eine hundert in der textbox
stehen. Wie kann ich aber die aktive arbeit zu sehen bekommen?
(Das der Rechner in dem Beispiel mit der for Schleife zu schnell arbeitet
als das ich es sehen könnte ist mir klar!)
Ich danke euch und hoffe auf viele Antoworten
icima
Ich hab ein Problem bei meiner akutellen Java Entwicklung.
Und zwar hat mein Programm ein GUI in dem verschiedene Daten
angezeigt werden. Beispielsweise werden E-mail abgerufen und
sollen in einem Textfenster angezeigt werden. Das Problem ist nun
das obwohl ich nach jeder E-mail den neuen Text in das Textfenster
dazufüge, wird erst nach abrufen aller Mails das GUI aktualisiert!?
Ich versteh das nicht wirklich, habe jetzt jedoch mitbekommen das
es wohl etwas mit invokeLater beim aufrufen der GUI am anfang des
Programmes zu tun hat. Vielleicht kann mir jemand von euch helfen
bzw. erklären warum und wieso das so ist.
Hier zum Code:
Aus der Main.java rufe ich die folgende Funktion in der NewJFrame.java
auf:
Code:
public void wakeUp () { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new NewJFrame().setVisible(true); } }); }
abarbeitungen direkt durch die auf die Oberfläche gesetzten Buttons
steuern.
Wie könnte ich denn nun beispielswese eine For-Schleife, die ich
über einen Button starte in jedem durchlauf eine Textbox aktuallisieren
lasse. Den Code würde ich quasi folgendermaßen schreiben:
Code:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { for(int i=0; i < 100; i++) { textbox.setText(i); } }
Bei meiner Methode würde einfach am ende eine hundert in der textbox
stehen. Wie kann ich aber die aktive arbeit zu sehen bekommen?
(Das der Rechner in dem Beispiel mit der for Schleife zu schnell arbeitet
als das ich es sehen könnte ist mir klar!)
Ich danke euch und hoffe auf viele Antoworten
icima
Comment