Frame friert ein

patal

Mitglied
Einen Guten Tag euch,

nach langem suchen und viel probieren bin ich zu keiner Lösung gekommen.

Und zwar geht es darum das, dass JFrame beim starten des Programmes komplett einfriert und es sich auch nicht mehr normal schließen lässt, sondern nur noch über des Task Manager sich der Prozess beenden lässt.

Das JFrame wird in einem eigen Thread gestartet und alle anderen Prozesse, bevor das Frame gestartet wird und vor allem auch danach, laufen völlig normal weiter und der Logger logt alles normal weiter und es werden keinerlei Exceptions dokumentiert und wenn das JFrame mit einem JPanel gefüllt wird, entstehen auch keine Fehler.

Da alle Prozesse, welche Endlosschleifen hervorrufen könnten, in eigenen Thread laufen und auch dies über den Logger auffallen würde, dass es sich hierbei um Endlosschleifen handeln, kann ich das immerhin ausschließen.

Der Fehler tritt ausschließlich beim starten des Frames auf, solange nicht alle komplett geladen wurde und zudem nur sehr sporadisch.
Durch einen Zufallen konnten wir aber den Fehler simulieren. Und zwar kommt es immer nur dann vor, wenn das Programm in dem Moment gestartet wird, in welchem der Rechner gerade voll am arbeiten ist.
Der Auslöser dafür ist eine Excel Datei, welche über ein eigenes Makro in einem bestimmten Zyklus Prozesse ausführt und da durch die CPU-Last kurzzeitig voll benötigt wird.

Mein Frage ist jetzt eben, ob sich jemand das irgendwie erklären kann, warum die GUI von mir dann komplett einfriert. Ich habe zu Testzwecken auch zum Teil den Inhalt nicht mehr laden lassen, sprich ein leeres Frame laden, und es kommt trotzdem in sehr seltenen Fällen vor, dass es einfriert.
Kann also irgendwie überwacht werden, ob das Frame richtig geladen hat oder irgend so etwas?

Die Rechner auf welchen das Programm läuft ist Windows 7
Java Version 1.7
i3-2100 3.1Ghz
4GB Ram

Vielleicht kann mir da je jemand ein paar Tipps geben, was ich noch probieren könnte ???:L

Gruß
Pascal
 

patal

Mitglied
Hallo,

hat niemand hier eine Idee?
Oder hat jemand eine Idee wie man den Fehler suchen könnte?
Oder eben die Möglichkeit das, dass Programm selbst überwacht, ob das Fenster noch reagiert und wenn nicht das Frame neu laden soll ...

Gruß
Pascal
 

dzim

Top Contributor
Ich hab von Swing nicht so viel Ahnung, aber vielleicht kannst du das Verhalten mit einem kleinen Beispiel nachstellen und hier posten. Nur von etwas Text ist es schwer bis unmöglich da eine genaue Aussage zu machen (ausser vielleich, man hatte das Gleiche Problem schon mal).
Für jemanden wie mich, der primär nur SWT/JavaFX/Android kennt, klingt es danach, als ob immer noch zu viel Arbeit auf dem Hauptthread gemacht wird - aber der Ansatz von Swing ist schon etwas anders als der von SWT und den anderen, daher muss ich mich mit meinen Mutmassungen zurückhalten...
 

patal

Mitglied
In wie weit soll ich ein kleines Beispiel nachstellen?

Also der Haupttread läuft völlig normal weiter und beendet auch alles ganz normal.
-> Lässt sich über den Logger feststellen

Der Frame selbst wird in einem völlig eigenen Thread erstellt und parallel zu diesem Thread wird noch ein weiterer Thread für diverse Hintergrundarbeiten gestartet, welche aber nicht abhängig sind von einander.

Wie dem auch sei, der Thread in dem das Frame erstellt, bleibt in keiner weise hängen.
Bspw. Programm ablauf.

Thread für das Frame bzw. die GUI starten.
Normaler ablauf

1. Leeres JFrame erstellen
2. JFrame anzeigen
3. Panels erstellen und in das JFrame einfügen
4. JFrame aktualisieren (refresh repaint)
5. Weiterer diverser Code ausführen -> wird vom logger weiter dokumentiert

Wenn er dann mal hängen bleibt:
X = Mögicher Punkt an dem es einfriert.
Logger logt aber danach ganz normal weiter, wie wenn nichts passiert wird.
belibt es bspw. zwischen 3 und 4 hängen, wird 5 völlig normal weiter abgearbeitet.
Es handelt sich dabei aber um keine eigenen Threads, sondern läuft alles in dem GUI-Thread ab

1. Leeres JFrame erstellen
2. JFrame anzeigen
X. Frame friert ein -> es wird nur das Fenster angezeigt. Die Größe kann nicht verändert werden und das Fenster kann nicht geschlossen werden über das X oder über Rechtsklick schließen in der Taskleiste.
3. Panels erstellen und in das JFrame einfügen
X. Wahlweise auch wenn schon ein Panel eingefügt ist.
4. JFrame aktualisieren (refresh repaint)
5. Weiterer diverser Code ausführen -> wird vom logger weiter dokumentiert

-> Nach langem beobachten ist eben aufgefallen das, wenn im selben Augenblick, in dem das Programm gestartet wird und das JFrame erstellt wird der Rechner andere Arbeiten gleichzeitig ausführt mit sehr hohem Rechenbedarf (Eben das Macro in der Excel Datei) kommt es dazu, dass es einfriert.
 
Zuletzt bearbeitet:

Foxei

Bekanntes Mitglied
Ich Programmiere viel mit Swing un ein Fall wie deiner ist mir bekannt. Ebenfalls sind mir zwei gründe dafür bekannt.
Endlos schleiße bzw. sehr lange arbeiten im Thread der Frame (Hast du ja ausgeschlossen)
Und Fehler im Look And Feel der Frame wenn z.b. Änderungen an der Frame nicht im Event dispatch Thread ausgeführt werden.
 

patal

Mitglied
Könntest du das mit dem Event dispatch Thread irgendwie veranschaulichen was du damit genau meinst?
Ich hab mir zwar gerade das eine oder andere darüber durchgelesen, aber weiß nicht wie du das in Verbindung bringst damit.
Soll das heißen, dass sich wohl irgendwo beim erstellen des Frames irgend ein anderer Thread blöd mit rein spielt und etwas am Frame ändert?
 
Zuletzt bearbeitet:

Foxei

Bekanntes Mitglied
Also etwas ältere LookAndFeel z.b. Substance LnF haben Probleme damit dinge an der Frame zu ändern wenn diese Änderungen nicht im Event dispatch Thread ausgeführt werden. Wenn ich z.b. den Text von einem Label in einem 3 Thread der Parallel zu meinem Frame und Work Thread läuft setzen will.
Du kann eine Änderung aber in den Frame Thread einbinden du kannst also einen Änderung an der Frame in Auftrag geben die sofort wenn die vorherige Änderung ausgeführt wurde ausgeführt wird.
Um dies zu Bewerkstelligen musst deine Frame so initialisiert werden.
Java:
SwingUtilities.invokeLater(new Runnable() {
		@Override
		public void run() {
			Main.frame=new VFrame();
		}
});
Wenn du dann eine änderrung an die Frame abgeben willst die nicht aus diesem Thread kommt muss sie ebenso gestartet werden.
Java:
SwingUtilities.invokeLater(new Runnable() {
		@Override
		public void run() {
			//was passieren soll
		}
});
Das gilt aber nicht für die Listener also wenn du im Frame Constructor einen ActionListener deiner Frame hinzugefügt hast dann ist der schon im Event dispatch Thread.

Wenn das nicht hilf würde ich folgende Stepps ab Arbeiten:
  • Alle Action Change etc. Listener auskommentieren
  • Frame starten wenn es fuktioniert alle Listener einzend nach einander wieder einschalten und immer wieder starten
  • Wenn es nicht fuktoniert dann wist deine Frame im falschen Thread oder wird von einem anderren Thread gestört

Als Tipp wenn du eine Frame erzeugst und dann z.b. in einem neben läufiger Thread immer wieder ein Label bzw. processBar etc neu setzt und diese Thread abstürtzt/unendlichkeit dann kann das ebenfalls zum einfrieren führen.

LG Foxei hoffe es hilft dir weiter
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fragerjava Frame inhalt komplett löschen AWT, Swing, JavaFX & SWT 4
volcanos Scrollen: JScrollPane mit Graphics g und Java-Fonts extends Frame ? AWT, Swing, JavaFX & SWT 5
Kotelettklopfer Frame ändert Farbe nicht AWT, Swing, JavaFX & SWT 12
P Swing Zufallsbilder auf Frame ausgeben AWT, Swing, JavaFX & SWT 1
D AWT Wie kann ich ein Frame von einem anderen aus beeinflussen? AWT, Swing, JavaFX & SWT 7
R 2D-Grafik Massive Frame Drops beim Benutzen von AffineTransformOp AWT, Swing, JavaFX & SWT 2
C Swing F5 Taste neu laden auf ganzen Frame AWT, Swing, JavaFX & SWT 9
J Genutzte Methoden in einen Frame einbauen AWT, Swing, JavaFX & SWT 21
H Swing Frame an andere Klassen weitergeben AWT, Swing, JavaFX & SWT 4
olfibits Swing JavaFX-Frame in JDesktopPane darstellen? AWT, Swing, JavaFX & SWT 2
F Swing Frame nach vorne holen AWT, Swing, JavaFX & SWT 2
J Panel auf Frame positionieren AWT, Swing, JavaFX & SWT 9
K Frame aus anderer Klasse schließen AWT, Swing, JavaFX & SWT 3
F AWT mehrere Panels in einem Frame AWT, Swing, JavaFX & SWT 17
S Tastatur frame nur nur 1 mal öffnen AWT, Swing, JavaFX & SWT 1
T Swing Java-Frame bei Programmstart NICHT im Vordergrund öffnen AWT, Swing, JavaFX & SWT 2
A Programm nun in ein Frame basteln AWT, Swing, JavaFX & SWT 1
T Frame öffnet nicht AWT, Swing, JavaFX & SWT 1
A Swing GUI - Button soll Frame verändern AWT, Swing, JavaFX & SWT 4
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
S mit keylistener frame schliessen AWT, Swing, JavaFX & SWT 8
Thallius Wer oder was bestimmt welches Frame toFront kommt wenn ein anderes geschlossen wird? AWT, Swing, JavaFX & SWT 8
Z Swing Frame wird geöffnet, aber ist ohne Inhalt AWT, Swing, JavaFX & SWT 0
J Panel auf Frame löschen und neues Panel Hinzufügen AWT, Swing, JavaFX & SWT 4
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
S NetBeans, Panel in Frame einfügen AWT, Swing, JavaFX & SWT 3
M Internal Frame in den vordergrund AWT, Swing, JavaFX & SWT 4
Tausendsassa Frame öffnet aber zeigt keinen Inhalt... AWT, Swing, JavaFX & SWT 10
Tom299 JavaFX Ähnliche Komponente wie der VB6 Frame? AWT, Swing, JavaFX & SWT 2
L Swing Frame in Thread wird nicht gezeichnet AWT, Swing, JavaFX & SWT 2
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
D Buttons erscheinen nicht auf Frame AWT, Swing, JavaFX & SWT 2
M Swing Probleme mit Frame.pack() AWT, Swing, JavaFX & SWT 1
B Frame hängt sich auf trotz invokeLater AWT, Swing, JavaFX & SWT 1
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
M JavaFX wie kann mann sein frame mit einem Icon fersehen? AWT, Swing, JavaFX & SWT 2
Z Canvas in Frame einfügen. Problem mit 4-Gewinnt AWT, Swing, JavaFX & SWT 1
Z Frame mit Rechteck! AWT, Swing, JavaFX & SWT 16
Messoras JWindow/Frame durch das man durchklicken kann AWT, Swing, JavaFX & SWT 5
M Swing "Frame.setResizable(false);" verschiebt Content? AWT, Swing, JavaFX & SWT 9
X Swing 1 JButton bedeckt meine ganze Frame aber Warum? AWT, Swing, JavaFX & SWT 2
J JTable aktuallisieren über anderen Frame AWT, Swing, JavaFX & SWT 6
J JTable Zeile anklicken und neues Frame öffnen AWT, Swing, JavaFX & SWT 4
S Quadrat auf Frame zeichnen AWT, Swing, JavaFX & SWT 2
B JFrame immer an gleicher stelle auf anderem Frame AWT, Swing, JavaFX & SWT 5
F JAVA-EDITOR: Panel in Frame aufnehmen AWT, Swing, JavaFX & SWT 3
B Swing JMenuBar unten in der Frame setzen? AWT, Swing, JavaFX & SWT 15
U Frame zeigt keine Komponenten AWT, Swing, JavaFX & SWT 7
L JButton im Frame fest verankern AWT, Swing, JavaFX & SWT 0
D Buttons erscheinen nicht auf dem zweiten Frame AWT, Swing, JavaFX & SWT 4
X Swing Größe eines Fensters JFrame / Frame AWT, Swing, JavaFX & SWT 5
BRoll Frame- Video einbinden machbar? AWT, Swing, JavaFX & SWT 6
Kandum obj_JMenu.addMenuListener - variable Anzahl an JMenus / menulistenern & frame.setTitle() dynamisch AWT, Swing, JavaFX & SWT 7
B Frame always on top nur auf anderem Frame AWT, Swing, JavaFX & SWT 9
S Aufteilung von JPanels in einem Frame AWT, Swing, JavaFX & SWT 13
K Options-Frame integrieren (zum zuschalten und wegschalten wie geht man da ran? AWT, Swing, JavaFX & SWT 7
J Frame mit Button erstellen - Warum ist es nötig, Frame über Unterklasse zu erstellen? (Reg Listener) AWT, Swing, JavaFX & SWT 2
N Swing Endlosschleife blockt Frame AWT, Swing, JavaFX & SWT 11
B Swing JDialog modal, aber trotzdem Frame auswählbar AWT, Swing, JavaFX & SWT 2
N Swing Frame ungewollt transparent! AWT, Swing, JavaFX & SWT 2
J Kleines Anzeige Problem(nur blanker Frame) AWT, Swing, JavaFX & SWT 22
D Neues Frame öffnen - und dazu altes schließen AWT, Swing, JavaFX & SWT 5
Daniel_L Drop von Dateien auf Frame - welche Drop-Location? AWT, Swing, JavaFX & SWT 2
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
C LookAndFeel Frame updated nicht vollständig AWT, Swing, JavaFX & SWT 9
K 3D-Grafik Canvas ist ein eigener Frame?! AWT, Swing, JavaFX & SWT 13
L Jbutton + jcombobox mit vorhandenen frame verknüfen AWT, Swing, JavaFX & SWT 8
J 2 Bereiche im Frame komplett nutzen - Welchen Layoutmanager? AWT, Swing, JavaFX & SWT 3
Z Swing JTextfield auf Frame AWT, Swing, JavaFX & SWT 13
N Swing Frame mit GlassPane und Popup AWT, Swing, JavaFX & SWT 5
L Frame Schließen und neustarten AWT, Swing, JavaFX & SWT 4
L Mehre Panels einen Frame zuweisen AWT, Swing, JavaFX & SWT 11
P Frame "always on top" und welche GUI? AWT, Swing, JavaFX & SWT 5
Furtano AWT mehrere Bilder in einen Frame zeichnen + Layout Manager AWT, Swing, JavaFX & SWT 10
S JMenuBar Frame Abstand AWT, Swing, JavaFX & SWT 3
J Swing Frame öffnen aus Frame mit JButton AWT, Swing, JavaFX & SWT 2
X Alte Frame-Größe beim wiederholten Aufruf AWT, Swing, JavaFX & SWT 5
M erstes Frame wartet auf die Auswertung eines zweiten AWT, Swing, JavaFX & SWT 8
J Frame-Steuerelement AWT, Swing, JavaFX & SWT 2
L Swing Flackern in Frame bei erstem Klick AWT, Swing, JavaFX & SWT 19
F Hintergrundbild im Frame AWT, Swing, JavaFX & SWT 11
S Zeichnen führt zu transparentem Frame AWT, Swing, JavaFX & SWT 6
S Swing Frame und Klasse extends JPanel - Komponenten zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 18
B Frame im Frame? AWT, Swing, JavaFX & SWT 4
C WindowListener Frame AWT, Swing, JavaFX & SWT 8
P klassenübergreifendes Frame AWT, Swing, JavaFX & SWT 6
B Text soll nich über das Frame hinausgehen AWT, Swing, JavaFX & SWT 5
J Hintergrund Label-Frame AWT, Swing, JavaFX & SWT 3
Spin JFrame/ Frame Drag and Drop AWT, Swing, JavaFX & SWT 13
S Swing Panelgröße anpassen wenn Frame maximiert wird AWT, Swing, JavaFX & SWT 2
K MouseListener für Objekte auf einem Frame AWT, Swing, JavaFX & SWT 4
3 Eigenes Frame/Window programmieren AWT, Swing, JavaFX & SWT 2
A Hintergrund von einem Frame ändern AWT, Swing, JavaFX & SWT 3
D Mehrere JTabel in einem Frame positionieren AWT, Swing, JavaFX & SWT 5
M Im Frame wird nur die Menüleiste erstellt und nicht die Tabelle? AWT, Swing, JavaFX & SWT 3
N Swing außerhalb des Hauptframe Komponente/Frame öffnen AWT, Swing, JavaFX & SWT 2
T Mehrere sich bewegende Objekte in einem Frame AWT, Swing, JavaFX & SWT 14
J "Warte Frame" AWT, Swing, JavaFX & SWT 3
K Swing JDialog aus Frame ausrufen AWT, Swing, JavaFX & SWT 2
M Swing Dynamischer Frame AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben