SWING AWT - Komponenten komplett verschwinden lassen

Status
Nicht offen für weitere Antworten.

dergrüne

Aktives Mitglied
Hi,

habe da ein kleines Speicher Problem. Und zwar habe ich ein Menü mit Java3D auf einer canvas3D (AWT Komponente) augebaut.

Die Klasse ist von JFrame abgeleitet und erzeigt ein komplett neues JFrame und bekommt eine canvas3D geaddet.

So wenn ich nun aus dem Menü in ein anderes Fenste rmöchte mache ich natürlich menue.dispose(). Das Fenster etc.

verwindet auch, aber wenn man sich mal den Speicher anschaut, wird nur ein marginaler Bruchteil wieder frei.

Wenn ich jetzt von dem anderen Menü zurück will zum Menü gibts eine OutOfMemoryException: Java heap space.

Also habe ich das Programm mal mit java -Xms 512m gestartet und da komme ich wieder zurück in Menü, allerdings ist

das Menü nicht neu augebaut worden. Sondern alle interpolatoren ect. sind noch beim Alten.

Obwohl ich menue = new Menue3D() mache ?!

Also habe ich mir gedacht, evtl. habe ich irgendwoe noch referencen wodurch der GC nicht korrekt anspringt.

Also habe ich mir erstmal folgendes kleines Programm geschrieben:

Code:
import javax.swing.JButton;
import javax.swing.JFrame;


public class JFrameTest extends JFrame{

	public JFrameTest(){
		super("test");
		JButton test = new JButton("Hallo");
		add(test);
		setSize(200,200);
		setVisible(true);
	}
	
	public static void main(String[] args) {
	JFrameTest test;
		for(int i=0;i<=300;i++){
			test = new JFrameTest();
			System.out.println(i);
			try {
				test.dispose();
				System.gc();
				test.finalize();
			} catch (Throwable e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		try {
			Thread.sleep(10000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

Wenn man das laufen lässt und den Taskmanager beobachtet sieht man, dass der Speicher immer voller wird, glaube es

startet mit 16 MB und hört bei 19 MB. Nach meinem Verständnis sollte der GC aber doch dafür sorgen, dass am Ende

wieder 16 MB frei sind, oder?

Also irgendwie gibt dispose nicht alles wieder frei, sondern nur bestimmte ressourcen.

Gibt es da was anderes, wie ich den Speicher wieder freigebe?

In meinem Java3D beispiel, habe ich bei geladenem Menü 110MB verbrauch, nachdem ich das Fenster dispost habe,

braucht es immernoch 98MB, dass kann doch nicht normal sein?!

Mfg
der Grüne
 

merlin2

Top Contributor
Eigentlich hat Universe doch eine cleanUp()-Methode (o. ä.).
Teste das Java3D-Beispiel mal damit.
 

dergrüne

Aktives Mitglied
Danke dür die Antwort.

Aber irgendwie macht dieses .cleanup() mal gerade gar nix. Zumindest wenn ich mir den Arbeitsspeicher verbrauch anschaue :-/

Bin langsam am verzweifeln
 

merlin2

Top Contributor
Wenn du den Speicheverbrauch im Taskmanager beobachtest, siehst du nichts von der Speicherfreigabe.
Soweit ich weiß, gibt die VM den Speicher nicht mehr an das OS zurück.
 

dergrüne

Aktives Mitglied
Hmm, ich dachte schon das es das macht und man es im Taskmanager sehen kann.

Dann verstehe ich allerdings nicht wieso ein OutOfMemory Exception: Java Heap Space Problem auftritt und wenn ich

mehr Speicher per java -Xmx mitgebe es funktioniert.
 

dergrüne

Aktives Mitglied
Was auch noch ein Problem ist, selbst wenn ich dem Programm mit -Xmx genügend Speicher gebe.

Und ständig aus dem Menü in den anderen Frame wechsele und zurück, wird der Prozess im Taskmanager jedesmal um

ca. 40MB größer, so bin ich dann ratz fatz bei 250MB+ den ich an Speicher benutze, was auch nicht sein kann.

Mir schein es fast so, als wenn er die Texturen oder so nich wegwirft, beim disposen vom Menü sondern noch fleißig im

Hintergrund beibehält.
 

dergrüne

Aktives Mitglied
Hmm es kann doch nicht sein, das Java so unvollständig arbeitet, das wenn ich mehrere JFrames auf und zu und auf und zu mache, nach und nach der Speicher vollgeschrieben wird.

Es muss doch möglich sein, _alle_ Ressourcen nach dem Schließen eines Fensters wieder frei zu geben?!

Schönen Abend
Der Grüne
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
MaxG. Swing Swing Komponenten zur Laufzeit hinzufügen AWT, Swing, JavaFX & SWT 2
S Problem mit Swing Komponenten AWT, Swing, JavaFX & SWT 11
G swing Komponenten verrutschen ständig... AWT, Swing, JavaFX & SWT 6
R Swing Komponenten klein angezeigt AWT, Swing, JavaFX & SWT 10
D Swing Swing Komponenten verschieben AWT, Swing, JavaFX & SWT 7
R Swing Sichtbarkeit der Swing Komponenten AWT, Swing, JavaFX & SWT 2
D TreeTableModel und Swing-Komponenten AWT, Swing, JavaFX & SWT 3
W Wieso SerialVersionUID bei Swing-Komponenten AWT, Swing, JavaFX & SWT 5
Y Mehrere Komponenten übereinander ohne Swing AWT, Swing, JavaFX & SWT 2
Daniel_L Swing-Komponenten als Parameter an eine Klasse übergeben? AWT, Swing, JavaFX & SWT 4
R Bilder als Hintergrund für Swing - Komponenten AWT, Swing, JavaFX & SWT 3
G Freie Swing API mit erweiterten Swing Komponenten AWT, Swing, JavaFX & SWT 5
G ActionListener bei Swing Komponenten AWT, Swing, JavaFX & SWT 7
M Freie Swing Komponenten AWT, Swing, JavaFX & SWT 2
Steev Swing und AWT Komponenten AWT, Swing, JavaFX & SWT 2
S swing komponenten mit mouselistener rotieren AWT, Swing, JavaFX & SWT 15
G Aussehen der Swing-Komponenten AWT, Swing, JavaFX & SWT 2
S Probleme mit GUI und SWING Komponenten AWT, Swing, JavaFX & SWT 2
I Swing-Komponenten skaliert zeichnen AWT, Swing, JavaFX & SWT 6
P Swing-Komponenten - Standart-Windows Design? AWT, Swing, JavaFX & SWT 4
P Übersicht - Swing komponenten AWT, Swing, JavaFX & SWT 3
J swing komponenten drehen? AWT, Swing, JavaFX & SWT 11
H Probleme bei Verwendung von Swing-Komponenten AWT, Swing, JavaFX & SWT 16
S Thread.sleep() beim Zeichnen auf Swing Komponenten? AWT, Swing, JavaFX & SWT 6
L swing komponenten Drucken AWT, Swing, JavaFX & SWT 7
G probleme mit swing-komponenten und canvas AWT, Swing, JavaFX & SWT 5
D Sprache in Swing-Komponenten on-the-fly ändern? AWT, Swing, JavaFX & SWT 3
G Komponenten ausrichten unter Swing AWT, Swing, JavaFX & SWT 7
Juelin javax.swing in javafx AWT, Swing, JavaFX & SWT 1
A Eclipse 2023 und Swing AWT, Swing, JavaFX & SWT 4
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
ExceptionOfExpectation Anpassung von JKomponentengrößen (Swing) AWT, Swing, JavaFX & SWT 3
thor_norsk AWT SWING Aufgabe AWT, Swing, JavaFX & SWT 7
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
H Simple Animation mit Swing AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
M Swing GridLayout AWT, Swing, JavaFX & SWT 2
O return-Statement mit Swing AWT, Swing, JavaFX & SWT 6
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
Monokuma Swing zu JavaFX AWT, Swing, JavaFX & SWT 5
J Swing Slider AWT, Swing, JavaFX & SWT 11
G Thread starten Swing AWT, Swing, JavaFX & SWT 5
G Swing JPasswordField AWT, Swing, JavaFX & SWT 12
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
C Swing AWT GUI Anfänger Aufgabe AWT, Swing, JavaFX & SWT 7
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
M Feldvalidierung swing AWT, Swing, JavaFX & SWT 4
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
O Zukunft von Swing und JavaFX ? AWT, Swing, JavaFX & SWT 3
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
T Swing Swing an Bildschirm anpassen AWT, Swing, JavaFX & SWT 3
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
M Swing GUI mittels erben sowie variabler Dateninhalt AWT, Swing, JavaFX & SWT 1
W Swing Multitouch mit Swing AWT, Swing, JavaFX & SWT 6
S Swing-Applikation die ein Numpad nachbildet samt Keybindings..? AWT, Swing, JavaFX & SWT 5
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
J Swing oder JavaFX AWT, Swing, JavaFX & SWT 21
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
D SQL Statements mit Java Swing benutzen AWT, Swing, JavaFX & SWT 4
Damtonix BufferStrategy flackert (Swing) AWT, Swing, JavaFX & SWT 9
D DatePicker für Java Swing AWT, Swing, JavaFX & SWT 2
B JavaFX oder swing AWT, Swing, JavaFX & SWT 3
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
L 2D-Grafik Swing paint|paintComponent AWT, Swing, JavaFX & SWT 2
L Swing Größe automatisch anpassen AWT, Swing, JavaFX & SWT 14
G Swing Swing Binding JList funktioniert nicht AWT, Swing, JavaFX & SWT 5
Blender3D Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7 AWT, Swing, JavaFX & SWT 16
B Bar Plot in Swing JPanel AWT, Swing, JavaFX & SWT 0
D Swing in Kombination mit JGraphX und JGraphT AWT, Swing, JavaFX & SWT 0
F main-Funktion bei Swing AWT, Swing, JavaFX & SWT 4
S Java Swing Print() method AWT, Swing, JavaFX & SWT 4
S Java Swing auf Windows Phone AWT, Swing, JavaFX & SWT 6
I JAVAFX - Übergabe der Inhalte an eine Scene - Wo ist der Vorteil gegenüber Swing? AWT, Swing, JavaFX & SWT 2
S Manuelles Menu in Swing AWT, Swing, JavaFX & SWT 3
T Custom Window ohne Swing / AWT / FX..?! AWT, Swing, JavaFX & SWT 1
Java_RY Bin Ratlos bzgl Malen in Swing AWT, Swing, JavaFX & SWT 5
offi Swing Shuttle List AWT, Swing, JavaFX & SWT 9
I Graph mit Swing zeichnen AWT, Swing, JavaFX & SWT 8
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
javampir Swing repaint in JavaFX Anwendung AWT, Swing, JavaFX & SWT 3
K Mit JavaFX angefangen. Lohnt sich Swing? AWT, Swing, JavaFX & SWT 28
B Swing Update Swing Komponente bevor Methode startet. AWT, Swing, JavaFX & SWT 4
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
M Swing Swing-Widgets und paintComponent() AWT, Swing, JavaFX & SWT 2
B Swing WindowBuilde: Menu -> anderes Panel wechseln AWT, Swing, JavaFX & SWT 1
K eigener button in swing AWT, Swing, JavaFX & SWT 3
A JavaFX DatePicker in Swing beim Start nicht sichtbar AWT, Swing, JavaFX & SWT 2
windl Bufferstrategy in Swing nachstellen AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben