Hallo erstmal,
ich arbeite mich momentan ein wenig in Java ein und hab zum Test ein kleines Programm geschrieben, das rekursiv einen Verzeichnissbaum durchläuft und die Unterverzeichnisse zählt. Funktioniert soweit.
Nun habe ich eine einfache GUI mit einem Start Button und einem jLabel erstellt. Das Label zeigt die Anzahl der Unterverzeichnisse an. Ich hab mich dabei strickt an diese MVC Anleitung gehalten: MVC. Mein Codeaufbau ist mit dem aus dem Beispiel fast identisch und funktioniert soweit auch.
Mich stört nur noch eins. Wenn ich auf den Start Button klicke, friert die Oberfläche ein und das jLabel wird erst gesetzt, wenn der komplette Verzeichnissbaum durchlaufen ist. Dabei rufe ich in jedem Verzeichnis den die setChanged() und notifyObservers() Methoden auf. Genauso wie in dem Beispiel.
Ist das Normal?
Wenn ja, wie lässt sich das den ändern? Ich hab im ersten Moment an Threads gedacht, hab da aber noch keine Erfahrung. Muss dann mein Programm oder die GUI als Thread laufen?
Ideal wäre auch ein Link mit Beispielcode. Wie die MVC Anleitung. Die fand ich super und es hat auch auf Anhieb funktioniert
ich arbeite mich momentan ein wenig in Java ein und hab zum Test ein kleines Programm geschrieben, das rekursiv einen Verzeichnissbaum durchläuft und die Unterverzeichnisse zählt. Funktioniert soweit.
Nun habe ich eine einfache GUI mit einem Start Button und einem jLabel erstellt. Das Label zeigt die Anzahl der Unterverzeichnisse an. Ich hab mich dabei strickt an diese MVC Anleitung gehalten: MVC. Mein Codeaufbau ist mit dem aus dem Beispiel fast identisch und funktioniert soweit auch.
Mich stört nur noch eins. Wenn ich auf den Start Button klicke, friert die Oberfläche ein und das jLabel wird erst gesetzt, wenn der komplette Verzeichnissbaum durchlaufen ist. Dabei rufe ich in jedem Verzeichnis den die setChanged() und notifyObservers() Methoden auf. Genauso wie in dem Beispiel.
Ist das Normal?
Wenn ja, wie lässt sich das den ändern? Ich hab im ersten Moment an Threads gedacht, hab da aber noch keine Erfahrung. Muss dann mein Programm oder die GUI als Thread laufen?
Ideal wäre auch ein Link mit Beispielcode. Wie die MVC Anleitung. Die fand ich super und es hat auch auf Anhieb funktioniert