Hi Jungs,
ich hab in meiner App nen Button der einen Dialog anzeigt. In dem Dialog werden ein paar Kuchendiagramme angezeigt, ich verwende dafür die jFreeChart Lib, falls die jmd kennt.
Auf jeden Fall ist es so dass beim erstmaligen Anzeigen des Dialogs dieser sehr lahm aufgebaut wird.
Jaja ich weiss ich hab's mit meinen komischen Beschwerden über Swing Aber ich will's verstehen.
Denn wenn ich den Dialog schließe und wieder öffne, ist er sofort da.
Ich verstehe das nicht da jedesmal das gleiche passiert. Es ist nicht so, dass ich beim ersten mal mehr Berechnungen mache als bei allen anderen Malen. Ich hab mich schon immer gefragt wieso das so ist.
Wieso zeigt er mir den Dialog nicht erst an, wenn er 100% gerendert ist? Also ich meine intern, wenn er die Infos über alle Pixel hat. Das Schalten von LED's selber geht ja zack zack. Das gilt in Swing schönerweise für die Komponenten in einem Frame/Dialog, aber leider nicht für das Fenster selber. Denn wie schon neulich ist es so, dass ich für ca. ne viertel Sekunde den Rahmen des Dialogs sehe, ohne Inhalt. Beim Rechnern in der Arbeit (ein etwas älteres Teil, ich glaub P4 3.2 Ghz oder so) dauert es sogar ne gute halbe Sekunde. Ich würd ja inzwischen meinen Mund schließen wenn es immer so wäre und Swing einfach als lahm bezeichnen. Aber das ist ja nur beim ersten Anzeigen des Dialogs der Fall.
Frage: Kann man nicht irgendwie diese Initialisierung erzwingen bevor das tatsächliche setVisible kommt? Irgendeine Art Pre-Rendering oder sowas? Wer versteht was da passiert, wieso ist das beim ersten mal langsamer?
Ich dachte auch schon vllt liegt es an den Charts, vllt sind die einfach nicht so performant zu zeichnen. Aber bei jedem Klick auf den Button werden die Diagramme entfernt, Daten neu berechnet, und neue Diagramme (new) in den Dialog geaddet. Also kann es ja doch irgendwie nicht an den Diagrammen selber liegen. Entweder er hat irgendwas gechached, wobei ich nicht verstehen würde wie, weil die Diagramme anders ausehen, oder beim ersten setVisible einer bestimmten Komponente muss er irgendwelche rechenintensiven Dige tun aus irgendeinem Grund?! Wer kann mir helfen, der Rest meiner GUI ist jetzt recht flott und alles super, aber diese eine Sache wurmt mich noch.
Danke
ich hab in meiner App nen Button der einen Dialog anzeigt. In dem Dialog werden ein paar Kuchendiagramme angezeigt, ich verwende dafür die jFreeChart Lib, falls die jmd kennt.
Auf jeden Fall ist es so dass beim erstmaligen Anzeigen des Dialogs dieser sehr lahm aufgebaut wird.
Jaja ich weiss ich hab's mit meinen komischen Beschwerden über Swing Aber ich will's verstehen.
Denn wenn ich den Dialog schließe und wieder öffne, ist er sofort da.
Ich verstehe das nicht da jedesmal das gleiche passiert. Es ist nicht so, dass ich beim ersten mal mehr Berechnungen mache als bei allen anderen Malen. Ich hab mich schon immer gefragt wieso das so ist.
Wieso zeigt er mir den Dialog nicht erst an, wenn er 100% gerendert ist? Also ich meine intern, wenn er die Infos über alle Pixel hat. Das Schalten von LED's selber geht ja zack zack. Das gilt in Swing schönerweise für die Komponenten in einem Frame/Dialog, aber leider nicht für das Fenster selber. Denn wie schon neulich ist es so, dass ich für ca. ne viertel Sekunde den Rahmen des Dialogs sehe, ohne Inhalt. Beim Rechnern in der Arbeit (ein etwas älteres Teil, ich glaub P4 3.2 Ghz oder so) dauert es sogar ne gute halbe Sekunde. Ich würd ja inzwischen meinen Mund schließen wenn es immer so wäre und Swing einfach als lahm bezeichnen. Aber das ist ja nur beim ersten Anzeigen des Dialogs der Fall.
Frage: Kann man nicht irgendwie diese Initialisierung erzwingen bevor das tatsächliche setVisible kommt? Irgendeine Art Pre-Rendering oder sowas? Wer versteht was da passiert, wieso ist das beim ersten mal langsamer?
Ich dachte auch schon vllt liegt es an den Charts, vllt sind die einfach nicht so performant zu zeichnen. Aber bei jedem Klick auf den Button werden die Diagramme entfernt, Daten neu berechnet, und neue Diagramme (new) in den Dialog geaddet. Also kann es ja doch irgendwie nicht an den Diagrammen selber liegen. Entweder er hat irgendwas gechached, wobei ich nicht verstehen würde wie, weil die Diagramme anders ausehen, oder beim ersten setVisible einer bestimmten Komponente muss er irgendwelche rechenintensiven Dige tun aus irgendeinem Grund?! Wer kann mir helfen, der Rest meiner GUI ist jetzt recht flott und alles super, aber diese eine Sache wurmt mich noch.
Danke