JPanel aus sich selbst heraus ersetzen.

ForenDaddy

Aktives Mitglied
vielleicht eine kleine Denksportaufgabe für die Interessierten unter euch.
ich habe ein jpanel und möchte wenn ich auf einen button klicke, dass es durch ein anderes jpanel ersetzt wird.
das funktioniert auch schon soweit, siehe code unten.
auf dem nächsten jpanel "GUIinformationen" gibt es einen netten zurück button, der das Selbe macht, um natürlich wieder zum ursprünglichen panel zurückzukehren.
auch das funktioniert.
ABER: je häufiger ich das mache, desto weiter rutscht der inhalt des panels nach unten, bis der zurück button nicht mehr erreichbar ist. es addiert sich also auf.
und ich habe keine ahnung wieso.
hat jemand eine ahnung woran das liegen kann? also eine spur in welche richtung ich suchen sollte.

mein gedanke war eigentlich, durch removeall, entferne ich ja alles.
daher sollte nichts "übrig bleiben" was noch rumliegt, um das verschieben zu begründen.


Java:
private void jButtonGelesenVerstandenActionPerformed(java.awt.event.ActionEvent evt) {                                                         
        this.replacePanel( new GUIinformationen( order ) );
}      
...
public void replacePanel( JPanel comp ){
        comp.setVisible( true );
        this.removeAll();
        this.setLayout( new FlowLayout() );
	this.add( comp );
	this.validate();
}
 

ForenDaddy

Aktives Mitglied
möchte ich vermeiden, weil ich dann alles vollständig umbauen müsste.
ausserdem habe ich das layout mit netbeans erstellt.
habe es also mal versucht und hat nicht wirklich gut funktioniert.
wäre also für konstruktive kritik offen.
 
G

Gasst

Gast
Versuch's mit pack() oder doLayout(). Zeig' bitte allen relevanten code, weil man den Fehler hier nicht finden kann. Woher soll der Leser wissen was this in diesem Fall bezeichnet und welches Layout im ElternPanel benutzt worden ist?
 

r.w.

Bekanntes Mitglied
vielleicht eine kleine Denksportaufgabe für die Interessierten unter euch.
ich habe ein jpanel und möchte wenn ich auf einen button klicke, dass es durch ein anderes jpanel ersetzt wird.
das funktioniert auch schon soweit, siehe code unten.
...


Wenn sich Dein Code in dem JPanel befindet, sehe ich das nicht so.
Du entfernst nicht das JPanel selbst, sondern nur alle darin enthaltenen Componenten.
Dann fügst Du dafür das übergebene JPanel hinzu. Diese Verschachtelung erklärt auch den
Versatz bei der Ausgabe.

Ich habe es nicht getestet, denke aber, dass das so nicht funktionieren wird
und plädiere auch für das CardLayout. ;-)
 

ForenDaddy

Aktives Mitglied
pack steht mir nicht zur verfügung.
dolayout klappte nicht.

aber r.w. hat schon recht. ich packe ein panel, in ein panel, in ein panel ........ bis ultimo
daher das wandern.

frage zum cardlayout:
werden alle panels auf einmal geladen oder erst das entsprechende nach dem show befehl?

ich schau mal ob das mit dem umbau überhaupt geht. bin ja nicht der einzige im projekt, der dran arbeitet.
 
C

Camino

Gast
frage zum cardlayout:
werden alle panels auf einmal geladen oder erst das entsprechende nach dem show befehl?
Du legst dir alle Panel an und fügst sie dem CardLayout hinzu. Dann kannst du dir mit show() ein bestimmtes Panel anzeigen lassen. Ist halt wie ein Kartenstapel, bei dem du auch nur die oberste Karte siehst. Und bevor du dir das Panel anzeigen lässt, kannst du ja dort noch irgendetwas machen z.B. Daten einfügen... Eigentlich überhaupt nicht so kompliziert, und du findest im Internet auch Anleitungen und Beispiele.
 

ForenDaddy

Aktives Mitglied
das prinzip hab ich schon verstanden.
mir ging es um die speicherauslastung/-verwaltung.

d.h. wenn ich 1000 panels habe, dann liegen die auch alle gleichzeitig im speicher rum?
und show biegt nur die referenz auf den jeweiligen um, der "obenauf" dargestellt werden soll?
 

jgh

Top Contributor
genau....

und kannst du denn nicht anstelle von
Code:
 this.removeAll();
dem Parent von deinem Panel mit dieser Methode beauftragen, so dass das gesamte Panel removed wird und dann halt ein anderes Panel geaddet?!
 

ForenDaddy

Aktives Mitglied
das hatte ich als zwischenlösung gemacht.
aber dann muss ich der parent klasse immer alles beibringen, was eigentlich die panels selber wissen sollten. also ein ständiges ge-if-fe

oder wisst ihr wie man ein objekt zum parent schickt, die klasse und die parameter des objekts auswertet und dann neu anlegt?
so müsste ich nur eine methode schreiben die ein beliebiges objekt entgegennimmt und wieder ein neues zusammenbaut. mit reflect war ich da nicht so erfolgreich. ohne parameter ja, aber mit ist das irgendwie sehr viel umständlicher.

wer jetzt meint, das objekt nur rüberzuschicken und direkt im parent in das panel zu ersetzen, der irrt.
ala moebius-schleife geht das leider nicht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Button lässt sich nicht auf dem JPanel verschieben AWT, Swing, JavaFX & SWT 5
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
I JPanel in JScrollPane verkleinert sich leider nicht .... AWT, Swing, JavaFX & SWT 2
R JPanel-Größe verändert sich nicht. Warum? AWT, Swing, JavaFX & SWT 5
N JPanel vergrößert sich bei zu großem Bild AWT, Swing, JavaFX & SWT 5
M Swing JPanel selektieren das sich in einer JTable befindet AWT, Swing, JavaFX & SWT 20
J Swing JScrollPane fasst JPanel und Groesse des JPanels soll sich aendern AWT, Swing, JavaFX & SWT 2
E JPanel verschiebt sich nach add AWT, Swing, JavaFX & SWT 13
S Listener fuer JPanel der merkt wenn sich was geaendert hat? AWT, Swing, JavaFX & SWT 5
R JPanel verkleinert sich, wenn man das Fenster vergrößert AWT, Swing, JavaFX & SWT 7
D JPanel, welches sich per Button vergrößert(in GridBagLayout) AWT, Swing, JavaFX & SWT 2
A Swing JFrame / JPanel Grösse soll sich nach Inhalt richten. AWT, Swing, JavaFX & SWT 2
P Zwei JPanel übereianderlegen AWT, Swing, JavaFX & SWT 14
XWing Basic JPanel mit 2 Buttons beutzen. AWT, Swing, JavaFX & SWT 10
G JPanel per Drag and Drop JButtons und Bilder ablegen AWT, Swing, JavaFX & SWT 1
G JPanel mit JButtons und Bilder AWT, Swing, JavaFX & SWT 5
N AWT JPanel zu Jframe hinzufügen AWT, Swing, JavaFX & SWT 2
M clear JPanel before repainting AWT, Swing, JavaFX & SWT 1
B ImageIcon auf JPanel austauschen AWT, Swing, JavaFX & SWT 3
T Swing Reload JPanel + darin liegende ProgressBar AWT, Swing, JavaFX & SWT 9
P Swing Mehrere JLabels mit ImageIcon in JPanel lesen AWT, Swing, JavaFX & SWT 1
E JScrollPane mit JPanel verbinden AWT, Swing, JavaFX & SWT 1
F JPanel Celleditor AWT, Swing, JavaFX & SWT 8
B JPanel-Inhalte inkl. JTextarea zoomen? AWT, Swing, JavaFX & SWT 3
B Mit ContentPane werden Komponenten angezeigt, mit SplitPane, JPanel nicht? AWT, Swing, JavaFX & SWT 6
CptK Funktionsgraphen effizient zeichnen und nur Teile von JPanel erneuern AWT, Swing, JavaFX & SWT 2
P Button simpler random auf einem JPanel verteilen? AWT, Swing, JavaFX & SWT 3
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
Ich lerne Java. Swing Von JPanel A auf JPanel B zugreifen. AWT, Swing, JavaFX & SWT 4
A JPanel austauschen und Focus geben AWT, Swing, JavaFX & SWT 3
E Auf JPanel malen und davor JComponenten anzeigen AWT, Swing, JavaFX & SWT 12
L JComponent aus JPanel anhand Mausposition ermitteln AWT, Swing, JavaFX & SWT 10
J JPanel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
B Verschiebbares JPanel "ruckelt" im Randbereich AWT, Swing, JavaFX & SWT 2
S Swing JPanel nimmt keinen KeyListener an AWT, Swing, JavaFX & SWT 7
K JLabel mit Bilder im nicht initialisierten JPanel hinzufügen AWT, Swing, JavaFX & SWT 5
Hatsi09 Swing JPanel Bild einfügen AWT, Swing, JavaFX & SWT 14
L JPanel zeigt keinen Inhalt AWT, Swing, JavaFX & SWT 1
dereki2000 JPanel mit Rückgbe wie bei JOptionPane AWT, Swing, JavaFX & SWT 3
E Hintergrundfarbe setzen in JPanel funktioneirt nicht AWT, Swing, JavaFX & SWT 4
P JPanel KeyListener hinzufügen AWT, Swing, JavaFX & SWT 8
S Nach scrollen verschwindet das zuvor im JPanel gezeichnete AWT, Swing, JavaFX & SWT 2
P Bewegung eines Balkens in eineum JPanel welches als Spielfeld fungiert AWT, Swing, JavaFX & SWT 2
L Swing JPanel Größe anpassen AWT, Swing, JavaFX & SWT 6
D Platzierung von JTextfield in JPanel AWT, Swing, JavaFX & SWT 3
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
M Swing JPanel in JScrollPane AWT, Swing, JavaFX & SWT 3
M Zwei JPanel übereinander nur vorderes "repainten" AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
D zwei JLabel stapeln in einem JPanel AWT, Swing, JavaFX & SWT 5
DaCrazyJavaExpert Swing JPanel "ContentPane" wird nicht gesetzt/angezeigt AWT, Swing, JavaFX & SWT 16
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing JPanel wird in JScollPane nicht angezeigt AWT, Swing, JavaFX & SWT 2
it_is_all JPanel verschwindet nach Button-Klick AWT, Swing, JavaFX & SWT 2
B Bar Plot in Swing JPanel AWT, Swing, JavaFX & SWT 0
F Screenshot eines JPanel AWT, Swing, JavaFX & SWT 3
S JPanel rotieren, Bild ist abgeschnitten, Clipping? AWT, Swing, JavaFX & SWT 0
M Swing JPanel flüssig verschieben AWT, Swing, JavaFX & SWT 5
G Nur ein JPanel wird angezeigt AWT, Swing, JavaFX & SWT 9
kilopack15 JPanel im laufenden Zustand einfärben AWT, Swing, JavaFX & SWT 2
kilopack15 JPanel Farbverwaltung AWT, Swing, JavaFX & SWT 1
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
A Swing JLabels in einer ForEach Schleife an den JPanel anheften (UNO Netzwerkspiel) AWT, Swing, JavaFX & SWT 1
L JPanel zeichnet im Konstrukter erzeugten Hintergrund nicht AWT, Swing, JavaFX & SWT 10
Java_RY wie kann ich auf JButtons in einem JPanel zugreifen AWT, Swing, JavaFX & SWT 3
F Zeichnung einem JPanel im Layoutmanager zuweisen AWT, Swing, JavaFX & SWT 3
Meeresgott Swing Umgang mit JPanel AWT, Swing, JavaFX & SWT 4
R 2D-Grafik PNG Bild per Graphics auf JPanel AWT, Swing, JavaFX & SWT 9
K JPanel Bilder bei Windows nicht darstellbar AWT, Swing, JavaFX & SWT 6
W Swing JPanel nur einmal nach mehreren Änderungen neu zeichnen AWT, Swing, JavaFX & SWT 1
J Swing Zeichenfläche im JPanel des Haupfenster anzeigen lassen AWT, Swing, JavaFX & SWT 4
A Swing JPanel zeigt Buttons nicht an AWT, Swing, JavaFX & SWT 4
R JPanel überzeichnet alles? AWT, Swing, JavaFX & SWT 1
D Von JPanel auf anderes JPanel zugreifen AWT, Swing, JavaFX & SWT 9
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
I JPanel - Verwaltung/ Anordnung AWT, Swing, JavaFX & SWT 4
T JComponents zur Laufzeit auf JPanel darstellen AWT, Swing, JavaFX & SWT 10
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
J Linien auf JPanel zeichnen AWT, Swing, JavaFX & SWT 3
L ImageIcon auf JPanel wird nicht angezeigt(keiner Fehlermeldung) AWT, Swing, JavaFX & SWT 11
M Swing JPanel innerhalb eines Frames verschieben AWT, Swing, JavaFX & SWT 3
T JTextField Array im JPanel wird nicht komplett angezeigt AWT, Swing, JavaFX & SWT 7
K Swing JPanel ueber komplette Form legen AWT, Swing, JavaFX & SWT 1
W Swing Größenänderung vom JPanel im JScrollPane und anschließendes positionieren AWT, Swing, JavaFX & SWT 2
R Komponenten von JPanel bleiben unsichtbar AWT, Swing, JavaFX & SWT 2
O JTabeddpane aber jedes JPanel als eigene Klasse anlegen AWT, Swing, JavaFX & SWT 7
llabusch Linien in JPanel zeichnen AWT, Swing, JavaFX & SWT 6
I (JPanel) paintComponent mit Zeitverschiebung (Sleep/Wait) AWT, Swing, JavaFX & SWT 1
H Netbeans Designer: Probleme mit JPanel und JFrame AWT, Swing, JavaFX & SWT 2
S jpanel anchor bottom AWT, Swing, JavaFX & SWT 1
thobren Swing Im JPanel wird nur TextArea gelöscht AWT, Swing, JavaFX & SWT 13
A JPanel größe verändern AWT, Swing, JavaFX & SWT 4
G JPanel komponente Löschen AWT, Swing, JavaFX & SWT 7
F JPanel "verschmelzen" GridLayout AWT, Swing, JavaFX & SWT 10
B Dropdown "Einstellungen" auf JPanel, transparent AWT, Swing, JavaFX & SWT 1
D GlassPane für JPanel AWT, Swing, JavaFX & SWT 2
F JPanel "zeichnet" keinen Text AWT, Swing, JavaFX & SWT 14
T Swing Index für Komponente in JPanel? AWT, Swing, JavaFX & SWT 6
Z Probleme mit JPanel's AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben