Swing Plätze von 2 panels vertauschen

schnubber

Mitglied
Hallo Forum,
Arbeite grade an einem programm welches die plätze von 2 dynamisch erzeugten panels vertauschen soll.
Ich habe keine direkten variablen bei den panels ich spreche sie durch button.getParent(); an.
beim adden der panels zähle ich eine variable namens "counter" hoch der counter wird als integer wert für das frisch zugefügte panel verwendet.
so in der art:
Java:
// bei click auf add button counter erhöhen
count++
// panel1 zu panel adden ( Integer entspricht : new Integer (1),0)
panel.add(panel1, new Integer (count),0);

beim nächsten klick auf den button passiert das folgende noch mal jetzt hat das zugefügte panel1 den Integer wert 2 weil der wert sich ja bei jedem klick erhöht usw...

mein problem ist wenn ich so 4-5 panels mit komponenten darin geadded habe versuche ich durch den up und down button die plätze von dennen zu tauschen.

zb ich klick auf den "up" button und das panel des gerade geklickten buttons wird entfernt.(somit auch der button.

Java:
//hier will ich das panel was darüber liegt ebenfalls vertauschen um die beiden dann in neuer reihnfolge zu adden.

panel.remove(upbutton.getParent());
// panel.remove( //... panel darüber );

panel.add(upbutton.getParent());
panel.add(//...panel was vorher drüber war);
// plätze wären jetzt vertauscht
wie sage ich dem code dass ich ein panel welches den Integer 1 kleiner hat mit entfernen will?
meine Idee war beim remove die panels per getParent() + integer wert an zu sprechen dann -1 zu zählen und dann noch mal remove(component). leider klappts net ganz.

die idee ist beim panelaustausch die werte von den componenten im panel zu behalten zb in ner combobox selected index soll auf 3 bleiben und texfield soll text "test" weiter beibehalten.
 
Zuletzt bearbeitet:
Was ich vorhabe ist die plätze von 2 panels zu tauschen
panel1 new Integer(0),0
panel1 new Integer (1),0

wird zu
panel1 new Integer(1),0
panel1 new Integer (0),0

das mit den getnextcontainer sieht aber vielversprechend aus danke

Edit: hilft in meinem fall nicht da die panels (panel1) untereinander im "panel" sein müssen hab boxlayout
und getParent() müsste panel1 als variable zurückgeben. deswegen verusche ich alle panels die ich adde zu nummerieren und dann einfach 2 zu entfernen und in anderer reihenfolge zu adden
 
Zuletzt bearbeitet:
Gib doch den Panels die Zahl als Namen mit. Anschliessend entfernst du das Panel mit dem Namen (Zahl) -1.

Java:
		int index=0; //irgendeine Zahl
		JPanel p= new JPanel();
		p.setName(""+index);
 

Zurück
Oben