Java GUI hängt

Der nette Mann

Erfahrenes Mitglied
Hi,

ich habe eine mir eine GUI zusammengebastelt. hat bisher auch super funtktioniert. Jetzt hab ich alle Konsolenausgaben in ein Fenster umgleitet, was auch funktioniert. Jetzt aber das Problem. Wenn man auf ich auf den Berechnen Buttton im Hauptfenster drücke werden Daten aus einer Datenbank gelesen und berechnet, was etwas Zeit in Anspruch nimmt. Zu diesem Zweck habe ich mir Konsolenmeldungen ausgegeben, wieviele Tabellen er schon durchsucht hat, damit der Benuttzer nicht meint, das Programm wäre abgeschmiert. Der Buttonklick blockiert aber jetzt das Fenster mit der Konsolenausgabe und so ist der gewünschte Effekt baden gegangen.
Hat das was mit der Threadsicherheit zu tun. Ich hab mich mit diesem Thema allerdings noch nicht auseinandergesetzt.

Danke für Eure Hilfe ;)

Der nette Mann
 
Der nette Mann hat gesagt.:
Hi,

ich habe eine mir eine GUI zusammengebastelt. hat bisher auch super funtktioniert. Jetzt hab ich alle Konsolenausgaben in ein Fenster umgleitet, was auch funktioniert. Jetzt aber das Problem. Wenn man auf ich auf den Berechnen Buttton im Hauptfenster drücke werden Daten aus einer Datenbank gelesen und berechnet, was etwas Zeit in Anspruch nimmt. Zu diesem Zweck habe ich mir Konsolenmeldungen ausgegeben, wieviele Tabellen er schon durchsucht hat, damit der Benuttzer nicht meint, das Programm wäre abgeschmiert. Der Buttonklick blockiert aber jetzt das Fenster mit der Konsolenausgabe und so ist der gewünschte Effekt baden gegangen.
Hat das was mit der Threadsicherheit zu tun. Ich hab mich mit diesem Thema allerdings noch nicht auseinandergesetzt.

Danke für Eure Hilfe ;)

Der nette Mann

Moin,
das hat nicht mit Threadsicherheit, sondern mit Threads allgemein zu tun. So lange die GUI die Datenbankabfrage ausführt, wartet sie auf Rückmeldung und ist blockiert. Deshalb werden in der Praxis Datenbankabfragen üblicherweise in einen eigenen Thread gelegt, um eben die o.a. Blockade des Swing-Threads zu vermeiden.
 
Hi,

genau das hab ich jetzt gemacht. Hab mir ne Klasse geschrieben, dieso von der Klasse Thread abgeleitet. Die run-Methode überschrieben und da alles reingepackt, was ich für die Abfrage brauche. Nun reagieren alle Fenster, wie ich mir das gewünscht habe...

Vielen Dank

Der nette Mann
 
Zurück