ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
380
380
EMPFEHLEN
-
Moin,
also folgendes Problem:
Ich habe eine Anwendung(JWindow), die ,wenn man auf einen Button drückt, ein JDialog öffnet. Dieser JDialog hat rel viele JTabbedPanes mit vielen Componenten. Dann wird eine Konfigurationsdatei eingelesen und alle Componenten mit den Daten gefüllt. Die meisten Componenten sind globale Variablen
Bis der JDialog erscheint können schon mal 5 Sekunden vergehen. Das ist nicht akzeptabel!
Ich könnte den JDialog befüllen, während das Programm läuft und dann nur noch sichtbar machen. Will ich aber nicht unbedingt! Ich will verstehen warum das so lange dauert und was ich benutzen sollte um dies zu beschleunigen!?
Ich habe nun vorerst ein JWindow gemacht, das den Ladestatus anzeigen soll. Aber das wird garnicht erst sichtbar gemacht(das Fenster ansich schon, aber nicht die Komponenten, das JLabel etc..), bzw. erst wenn alles (JDialog) angezeigt wird.
Irgendwie wird die Anzeige der Komponenten(Lade-JWindow) geblockt bis alle Komponenten des JDialog initialisiert wurden.
Habe ich JAVA noch nicht verstanden? ich dachte die Methoden werden abgearbeitet kehren zurück und es geht mit der nächsten weiter.
Wäre für jden Tip dankbar!!
Gruß MrRock
Crosstheading: http://www.java-forum.org/de/topic57...uert-ewig.htmlYOU? ...and whose army?
-
Naja aber die Abarbeitung von Methoden kann sehr unterschiedlich lang dauernd und mit Oberflächenkomponenten verhält es sich sowieso etwas anders da die in einem Thread dargestellt werden und es wirklich nur einen einzigen Thread für die Oberflächendarstellung gibt. Wenn du also zwei Oberflächenkomponenten gleichzeitig darstellen willst musst du dafür spezielle Mechanismen benutzen damit dies funktioniert.
Wie auch immer... wenn deine Darstellung so lange dauert solltest du mal suchen woran genau das liegt. Dauert vllt das Laden der Daten von dir sehr lange?
Das kannst du sehr leicht prüfen in dem du vor dem Aufruf dir mit System.currentTimeMillis die Zeit merkst und nach der Methode dies nocheinmal durchführst und diese Werte voneinander abziehst um die Ausführungszeit in Millisekunden zu erhalten.
Ansonsten kannst du auch einen Profiler benutzen, der sagt dir auch genau wie lange welche Methode benötigt.
-
Danke für die Antwort!
Das Laden ist es nicht, es ist wirklich das Erstellen des JDialogs. Das hab ich schon getestet. Da es viele Tabs mit den gleichen (auch vielen) Komponenten gibt, werde ich dies in eine Art work-Methode auslagern, um nicht immer wieder Instanzvariablen zu erzeugen.
PS: danke für die Erklärung mit dem Oberflächen-Thread
Hat jmd einen Link zu einem guten Tutorial oder Dokumentation zum Thema Performanceoptimierung?YOU? ...and whose army?
-
Hallo,
könntest du mal deinen Quelltext posten?
MFG
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
Moin,
war eine Weile weg, sorry.
Falls noch jmd helfen möchte: Sourcecode
der Sourcecode ist jetzt so, dass der JDialog erstellt wird während das Hauptprogramm lädt. Das blockiert im Moment die GUI des Hauptprogramms bis alles geladen ist, dann wird wenn benötigt der Dialog nurnoch sichtbar gemacht.
Ist aber auch keine zufriedenstellende Lösung.
Geändert von MrRock (26.10.07 um 15:37 Uhr)
YOU? ...and whose army?
-
Der Link funktioniert nicht....
-
Link geht wieder
YOU? ...and whose army?
Ähnliche Themen
-
Konvertieren dauert ewig
Von Darian im Forum PHPAntworten: 5Letzter Beitrag: 30.05.09, 09:56 -
Abfrage dauert ewig - MS SQL
Von Homer Simpson im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 29.05.07, 16:45 -
DSL Bestellung dauert ewig
Von SMoeller im Forum Internet, DSL & FlatrateAntworten: 1Letzter Beitrag: 30.08.06, 00:42 -
Rendern dauert ewig
Von dadiscobeat im Forum Cinema 4DAntworten: 12Letzter Beitrag: 30.09.04, 12:52 -
LAN-Verbindung dauert ewig!
Von magic_halli im Forum NetzwerkeAntworten: 8Letzter Beitrag: 25.11.03, 07:54





Zitieren


Login





