Java GUI Methode aufrufen die Zeit braucht?

alfi82

Mitglied
Wie macht man es am besten?
Ich habe das Problem das ich wenn der Anwender bei einer ComboBox was auswählt, eine Methode gestartet werden muss die sehr lange braucht?

public void itemStateChanged(final ItemEvent e) {

Methodenaufruf_der_sehr_viel_zeit_braucht();

}

Besten Dank
 
Hallo,

ich weiß jetzt nicht, ob diese Methode unbedingt dann aufgerufen werden muss. Falls es aber wirklich nicht anders geht, setzt man einfach für das Hauptfenster einen Wait-Cursor, damit der User sieht, dass was geschieht. Man startet dann die Methode aber am besten in einem eigenen Thread.

MFG

Sascha
 
Okay, wie mach ich das dann mit dem Thread das wäre besser als WaitCursor. Ist es okay wenn ich da einfach einen anonymen Thread verwende?
 
Naja, man sollte manchmal schon einen Wait-Cursor verwenden. Kommt halt auf den Anwendungsfall an.
Beispiel: Man klickt in der GUI auf ein Element(Baum o.ä.). Dann müssen Daten von einer Datenbank geholt werden und in der GUI angezeigt werden. Sowas kann länger dauern. Das laden der Daten wird dann in einem eigenen Thread gemacht und die GUI bekommt einen Wait-Cursor, damit der User sieht, dass was geschieht. Das mit dem Thread ist wichtig damit die GUI nicht einfriert.

MFG

Sascha
 
Welche Gui benutzt Du ? Swing und SWT sind nicht Thread-safe.

In Swing sollte der fremde Thread entweder via SwingUtility.invokeLater bzw invokeAndWait Gui-Elemente verändert.

in SWT machen das display.asynchExec bzw synchExec.

Gruss
 
Zurück