Hilfe Meine JPanels verschwinden im Müll

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo ich habe folgendes Problem, Ich habe einen Maiframe in dem ich diverse Panels liegen habe, eines der Panels soll sich jeh nach buttondruck verändern, quasi kann mein JPanel 3 abgeleitete Jpanels annehmen, ein EinstellungsPanel, ÜbersichtsPanel und PlanungsPanel, jeh nach dem wo der User drauf drückt, soll das jeweilige Panel im Frame erscheinen, ich hatte mir gedacht mir die Panels vorher zu erzeugen und dann immer jeh nach Schalterstellung zuzuweisen, das funktioniert auch (beim ersten mal) beim zweiten mal sind die Panels allerdings durch den Garbage Collector einkassiert worden.. gibts da irgend eine andere Möglichkeit? Wie löst man sowas in Java?Möchte ja nicht jedes mal wenn eine Taste gedrückt wird ein komplett neues Frame/Panel erzeugen müssen...
 
S

SlaterB

Gast
> beim zweiten mal sind die Panels allerdings durch den Garbage Collector einkassiert worden..

diese Aussage macht ja keinen Sinn,

wie stellst du denn fest, dass die einkassiert wurden?
hast du irgendeine Variable oder Liste, in der sie drin sein sollten um das zu prüfen?
wenn ja -> GC kann unmöglich Dinge löschen, die referenziert sind
wenn nein -> dann kannst du gar nicht feststellen, was mit denen los ist
 
G

Guest

Gast
Ja ähm also ich denke mal das es so sein wird, da ich sonst keine andere Erklärung dafür habe
Das Augenmerk wäre auf die UpdateMethode und Konstruktor zu richten.. Wie gesagt einmal geht das drücken der tasten gut, beim 2. mal gehts halt nicht mehr, beim update lasse ich mir das Object ausgeben das in clock liegt, beim ersten mal steht dann
PlanungPanel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]

Beim 2. mal steht dann
PlanungPanel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=16777225,maximumSize=,minimumSize=,preferredSize=]

und denke mal das die flagstellung dazu führt das es nicht mehr angezeigt wird.. aber ich weiss es nicht
Code:
import java.awt.*;
import java.awt.event.*;
import java.util.Observable;
import java.util.Observer;

import javax.swing.*;
import javax.swing.event.*;
public class PaintPanel extends JPanel implements Observer {
    GridBagConstraints c = new GridBagConstraints();
	JPanel clock = new Clockpanel();
	MessagePanel clock2 = new MessagePanel();
	Model m;
	ControlerMain controler;
	
	EinstellungsPanel einstellung;
	  UebersichtPanel uebersicht;
	  PlanungPanel planung;
	
	
	PaintPanel(Model m,ControlerMain co) 
{
    	this.m=m;
    	this.controler=co;
		setLayout(new GridBagLayout());
    	c.insets = new Insets(10, 10, 10, 10);
	    c.fill = GridBagConstraints.BOTH; // components grow in both dimensions
	    c.gridx = 0;
	    c.gridy = 0;
	    c.gridwidth = 2;
	    c.gridheight = 5;
	    c.weightx = c.weighty = 0.9;
	    clock.setOpaque(true);
	    this.add(clock, c);
	    this.einstellung = new EinstellungsPanel(controler);
	    this.uebersicht= new UebersichtPanel(controler,m);
	    this.planung= new PlanungPanel(controler,m);
	   


	    c.gridx = 0;
	    c.gridy = 6;
	    c.gridwidth = 2;
	    c.gridheight = 1;
	    c.weightx = c.weighty = 0.1;
	    
	    m.addObserver(this);
	    this.add(clock2, c);
	    
	}

    public void update(Observable observable, Object arg) {
    	if((((Model)observable).selectedButton==1)&&!(clock instanceof EinstellungsPanel)){
    		//clock.setVisible(false);
    		clock.removeAll();
    		
    		clock=einstellung;
    		if (clock!=null)System.out.println(clock);
        	c.insets = new Insets(10, 10, 10, 10);
    	    c.fill = GridBagConstraints.BOTH; // components grow in both dimensions
    	    c.gridx = 0;
    	    c.gridy = 0;
    	    c.gridwidth = 2;
    	    c.gridheight = 5;
    	    c.weightx = c.weighty = 0.9;
    	    //clock.setBackground(Color.orange);
    	    clock.setOpaque(true);
    	    
    	    this.add(clock, c);
    	    repaint();
    	}
    	if((((Model)observable).selectedButton==2)&&!(clock instanceof UebersichtPanel)){
    		clock.removeAll();
    		clock= uebersicht;
    		if (clock!=null)System.out.println(clock);//clock=new UebersichtPanel(controler,m);
        	c.insets = new Insets(10, 10, 10, 10);
    	    c.fill = GridBagConstraints.BOTH; // components grow in both dimensions
    	    c.gridx = 0;
    	    c.gridy = 0;
    	    c.gridwidth = 2;
    	    c.gridheight = 5;
    	    c.weightx = c.weighty = 0.9;
    	    //clock.setBackground(Color.orange);
    	    clock.setOpaque(true);
    	    this.add(clock, c);
    	    
    	    repaint();
    	}
    	if((((Model)observable).selectedButton==3)&&!(clock instanceof PlanungPanel)){
    		clock.removeAll();
    		clock= planung;
    		if (clock!=null)System.out.println(clock);
        	c.insets = new Insets(10, 10, 10, 10);
    	    c.fill = GridBagConstraints.BOTH; // components grow in both dimensions
    	    c.gridx = 0;
    	    c.gridy = 0;
    	    c.gridwidth = 2;
    	    c.gridheight = 5;
    	    c.weightx = c.weighty = 0.9;
    	    //clock.setBackground(Color.orange);
    	    clock.setOpaque(true);
    	    this.add(clock, c);
    	    repaint();
    	}
    }
}
 
S

SlaterB

Gast
nun, ein geändertes Flag klingt ja noch etwas anders als von GC gelöschte Objekte ;)

welchen Sinn haben die Code-Zeilen
> clock.removeAll();
?

clock scheint nach dem ersten Klick immer eines deiner drei Panels zu sein und mit diesem Befehl gehst du (und nicht der GargabeCollector) mit einem großen Radiergummi drüber
 
G

Gast

Gast
jupp den zweck soll es auch erfüllen also den Radiergummie weil ansonsten immernoch fragmente des vorherigen Panels zu sehen wären dient also nur der optik (Hoffe damit nicht noch mehr zu bewirken:))
 
S

SlaterB

Gast
nochmal: du löschst nicht das clock-Panel, welches anfangs ein 4. Panel neben den anderen dreien war, sondern eines der drei Panel!
wenn du deren Inhalt entfernst, dann sind sie nur noch leere Panel

leer im Sinne von richtig doll leer, so gar nix mehr drin,
warum ein leeres Panel anzeigen?
 
G

Gast

Gast
hmm na ich hatte gehofft einfach das vorher angezeigte Panel einfach in den hintergrund verschwinden zu lassen wenn ein anderes angezeigt werden soll aber ich hatte immer das problem das wenn ein neues Panel kam, die fragmente der alten panels noch in der anzeigefläche zu sehen waren.. dachte dieses Prob mit removeAll beheben zu können aber wenn dann die panels leer sind iast das ja auch nicht der stein der weisen.. hmmm...
 
S

SlaterB

Gast
du darst nicht deine drei Inhaltspanel löschen,
sondern die Panel in welchen sie enthalten sind..
 

Verjigorm

Top Contributor
Gast hat gesagt.:
hmm na ich hatte gehofft einfach das vorher angezeigte Panel einfach in den hintergrund verschwinden zu lassen wenn ein anderes angezeigt werden soll aber ich hatte immer das problem das wenn ein neues Panel kam, die fragmente der alten panels noch in der anzeigefläche zu sehen waren.. dachte dieses Prob mit removeAll beheben zu können aber wenn dann die panels leer sind iast das ja auch nicht der stein der weisen.. hmmm...

Genau dazu ist CardLayout da :p
 
G

Gast

Gast
Jupp Danke leute .. habe das Problem jetzt mit dem CardLayout gelöst und nun funktioniert es auch..Danke an euch
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
JavaBeginner22 Button Hilfe AWT, Swing, JavaFX & SWT 0
ExceptionOfExpectation Textdarstellung auf einem Canvas mit Hilfe von repaint(); AWT, Swing, JavaFX & SWT 6
senol JOptionPane hilfe!!! :(((( AWT, Swing, JavaFX & SWT 32
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
J Swing Hilfe bei Layout AWT, Swing, JavaFX & SWT 2
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
F BorderLayout Hilfe bei Anzeige AWT, Swing, JavaFX & SWT 2
J Hilfe beim tablevies AWT, Swing, JavaFX & SWT 2
T Swing Hilfe - Selbst Informatik Lehrer konnte mir nicht weiter Helfen AWT, Swing, JavaFX & SWT 2
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
A Swing TicTacToe-Bitte um Hilfe AWT, Swing, JavaFX & SWT 32
T Bitte um Hilfe AWT, Swing, JavaFX & SWT 2
T Hilfe bei Code AWT, Swing, JavaFX & SWT 2
S Hilfe bei Java Gui Anfänger AWT, Swing, JavaFX & SWT 5
J Warum geht das nicht? if-else usw..... compilieren geht nicht -- HILFE!!! AWT, Swing, JavaFX & SWT 10
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
T Hilfe was mus ich tun um das fertige JfxFenster zu sehen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
A hilfe für flowlayout AWT, Swing, JavaFX & SWT 6
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
X Swing JButton's zum JScrollPane hinzufügen geht nicht. Bitte um Hilfe. AWT, Swing, JavaFX & SWT 9
C Gesucht: Hilfe beim programmieren. AWT, Swing, JavaFX & SWT 1
V Swing Brauche Hilfe mit Label AWT, Swing, JavaFX & SWT 3
C Hilfe beim programmieren mit studiumgebundenes Projekt AWT, Swing, JavaFX & SWT 1
T Swing JTable Zeile mit ausgelesenen Werten mit Hilfe von einem Button hinzufügen AWT, Swing, JavaFX & SWT 1
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
H Swing Hilfe bei GUI AWT, Swing, JavaFX & SWT 4
T HILFE wie lösche ich gezeichnetes per tastendruck AWT, Swing, JavaFX & SWT 1
R Swing JOptionPane Fehlermeldung- bitte um Hilfe! AWT, Swing, JavaFX & SWT 4
Tausendsassa ImageIcon?! Hilfe! AWT, Swing, JavaFX & SWT 10
C Hilfe bei JSpinner und JList AWT, Swing, JavaFX & SWT 1
J GridBagLayout mit Hilfe einer For-Schleife befüllen AWT, Swing, JavaFX & SWT 1
M Hilfe bei Performanceverbesserung AWT, Swing, JavaFX & SWT 34
B Hilfe welches Layout brauch ich AWT, Swing, JavaFX & SWT 4
M SwingWorker Hilfe! AWT, Swing, JavaFX & SWT 10
K Swing Brauche Hilfe AWT, Swing, JavaFX & SWT 6
O AWT Performance und Bug behebung[brauche Hilfe] AWT, Swing, JavaFX & SWT 2
K Swing Konsolen Programm in GUI - Suche Hilfe bei Konsolenausgabe AWT, Swing, JavaFX & SWT 2
K Viele Textfield mit Hilfe eines MousListener leeren - möglich? AWT, Swing, JavaFX & SWT 8
I ausgewählte Zeile mit Hilfe der Tastatur löschen! AWT, Swing, JavaFX & SWT 3
Kenan89 Java FX GUI Hilfe für erste Java FX App AWT, Swing, JavaFX & SWT 8
B Rechteck Mit Hilfe Von Timeline, KeyFrames animieren AWT, Swing, JavaFX & SWT 3
J LayoutManager Hilfe bei Wahl des Layouts AWT, Swing, JavaFX & SWT 9
F Hilfe beim ausschalten von Robot AWT, Swing, JavaFX & SWT 7
N Hilfe bei Memory-Spiel AWT, Swing, JavaFX & SWT 18
L Swing Hilfe bei JTabelModel gesucht AWT, Swing, JavaFX & SWT 4
B Hilfe zu JTable und JTabbedPane AWT, Swing, JavaFX & SWT 18
K Hilfe bei Labels AWT, Swing, JavaFX & SWT 3
S Hilfe beim Lernprozess von java3d AWT, Swing, JavaFX & SWT 20
T JLayeredPanel - Hilfe AWT, Swing, JavaFX & SWT 7
C Swing Hilfe bei umsetzung eines Stundenplans. AWT, Swing, JavaFX & SWT 7
K Swing Hilfe beim JTree! AWT, Swing, JavaFX & SWT 3
N Hilfe bei Panels! AWT, Swing, JavaFX & SWT 11
F Swing Syntaxhighlighting Hilfe AWT, Swing, JavaFX & SWT 5
Jats Bitte um Hilfe bei JComboBox mit Array AWT, Swing, JavaFX & SWT 6
Jats Hilfe bei FocusListener für Taschenrechner AWT, Swing, JavaFX & SWT 4
N Swing nach Fensterrand Action ausführen? HILFE AWT, Swing, JavaFX & SWT 7
R Hilfe bei Bachelorrabeit. Seitenvorschau AWT, Swing, JavaFX & SWT 7
L Mein Kopf dreht sich... Brauche Hilfe beim GUI gestalten AWT, Swing, JavaFX & SWT 10
G Swing Hilfe-Fenster erstellen AWT, Swing, JavaFX & SWT 20
E LayoutManager Hilfe ein GridbagLayout!! AWT, Swing, JavaFX & SWT 7
K GUI-Hilfe für Anfänger AWT, Swing, JavaFX & SWT 15
J Schulprojekt und braucht hilfe AWT, Swing, JavaFX & SWT 54
G Hilfe! Command Pattern an easy ImageViewer? AWT, Swing, JavaFX & SWT 13
radiac Hilfe bei GUI AWT, Swing, JavaFX & SWT 22
N Hilfe bei erstellen eines Bibliotheksprogrammes AWT, Swing, JavaFX & SWT 15
H Swing Jtable wird nicht angezeigt..hilfe!! AWT, Swing, JavaFX & SWT 16
M DRINGEND HILFE TextPane RECHTSBÜNDIG AWT, Swing, JavaFX & SWT 2
B Swing Hilfe zu JTextField AWT, Swing, JavaFX & SWT 2
J Brauche ganz dringend Hilfe!!! AWT, Swing, JavaFX & SWT 5
V Bitte um Hilfe bei nem Taschenrechner AWT, Swing, JavaFX & SWT 8
F NullPointerException - HILFE!! AWT, Swing, JavaFX & SWT 20
G Hilfe!!!Sudoku AWT, Swing, JavaFX & SWT 19
M Swing JButton hilfe AWT, Swing, JavaFX & SWT 3
M brauche Hilfe um Einträge aus Jlist zu löschen AWT, Swing, JavaFX & SWT 4
Spin Hilfe - Erklärungsbedarf für Kreis AWT, Swing, JavaFX & SWT 5
O Bitte um Hilfe bei ComboBox in TableHeader AWT, Swing, JavaFX & SWT 9
M Erstellen eines Hilfe-Fenster bzw"Erste-Schritte" AWT, Swing, JavaFX & SWT 2
G Hilfe beim Erstellen eines eigenen Html-Editors! AWT, Swing, JavaFX & SWT 4
G Hilfe AWT, Swing, JavaFX & SWT 8
N ausrichtung Button - hilfe bitte AWT, Swing, JavaFX & SWT 2
T Hilfe zu Events? AWT, Swing, JavaFX & SWT 6
A Ini Datei Auswerten - HILFE! AWT, Swing, JavaFX & SWT 6
D Hilfe bei GUI-Elementen in Java AWT, Swing, JavaFX & SWT 9
D Grafikeinsteiger sucht/braucht Hilfe. Wäre Nett ! AWT, Swing, JavaFX & SWT 3
K Mein Informatikprojekt läuft aus dem Ruder Hilfe. F1 ^^ AWT, Swing, JavaFX & SWT 5
S Hilfe! Bekomme Daten nicht ausgelesen AWT, Swing, JavaFX & SWT 3
M hilfe! probleme mit meinem programm AWT, Swing, JavaFX & SWT 5
V Hilfe :( bekomme textarea nicht versetzt AWT, Swing, JavaFX & SWT 2
M Hilfe ich komme nicht an ein JTextArea AWT, Swing, JavaFX & SWT 4
J Hilfe CardLayout AWT, Swing, JavaFX & SWT 3
C Hilfe bei JInternalFrame AWT, Swing, JavaFX & SWT 6
G BubbleSort mit Hilfe einer Balkengrafik visualisieren AWT, Swing, JavaFX & SWT 9
G Leider trotz allem kein Icon :( Brauche Hilfe AWT, Swing, JavaFX & SWT 3
S sinuskurve hilfe! AWT, Swing, JavaFX & SWT 2
D JSplittPane - unsichtbarer Rahmen? hilfe ;) AWT, Swing, JavaFX & SWT 2
G Selbstprogrammierter Editor - brauche Hilfe AWT, Swing, JavaFX & SWT 5
J Hilfe bei EventListening AWT, Swing, JavaFX & SWT 3
M Hilfe bei vers. Fonts und Zeilenlänge in eigenem Editor. AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben