tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
380
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    MrRock MrRock ist offline Mitglied Bronze
    Registriert seit
    Jun 2004
    Ort
    branne
    Beiträge
    25
    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.html
     
    YOU? ...and whose army?

  2. #2
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    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.
     

  3. #3
    MrRock MrRock ist offline Mitglied Bronze
    Registriert seit
    Jun 2004
    Ort
    branne
    Beiträge
    25
    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?

  4. #4
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Hallo,

    könntest du mal deinen Quelltext posten?

    MFG

    zEriX
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  5. #5
    MrRock MrRock ist offline Mitglied Bronze
    Registriert seit
    Jun 2004
    Ort
    branne
    Beiträge
    25
    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?

  6. #6
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Der Link funktioniert nicht....
     

  7. #7
    MrRock MrRock ist offline Mitglied Bronze
    Registriert seit
    Jun 2004
    Ort
    branne
    Beiträge
    25
    Link geht wieder
     
    YOU? ...and whose army?

Ähnliche Themen

  1. Konvertieren dauert ewig
    Von Darian im Forum PHP
    Antworten: 5
    Letzter Beitrag: 30.05.09, 09:56
  2. Abfrage dauert ewig - MS SQL
    Von Homer Simpson im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 29.05.07, 16:45
  3. DSL Bestellung dauert ewig
    Von SMoeller im Forum Internet, DSL & Flatrate
    Antworten: 1
    Letzter Beitrag: 30.08.06, 00:42
  4. Rendern dauert ewig
    Von dadiscobeat im Forum Cinema 4D
    Antworten: 12
    Letzter Beitrag: 30.09.04, 12:52
  5. LAN-Verbindung dauert ewig!
    Von magic_halli im Forum Netzwerke
    Antworten: 8
    Letzter Beitrag: 25.11.03, 07:54