Objekte tauschen Add(Component) und Remove(Comp)

Hallo,

Es werden n Objekte mit add dem Container hinzugefügt und als Matrix dargestellt. (GridLayout)

Ich möchte jetzt eine Funktion schreiben, die zwei dieser Objekte vertauscht. Dieser Vorgang soll anhand der Indizes des Containers durchgeführt werden.

  1. Wie verwende ich „remove“ in Verbindung mit dem Container-Index?
  2. WIe kann ich eine Komponente mit „add“ an einer bestimmten Position einfügen?

Vielen Dank!

Christian

  1. Wie verwende ich „remove“ in Verbindung mit dem
    Container-Index?

remove(int index)

  1. WIe kann ich eine Komponente mit „add“ an einer bestimmten
    Position einfügen?

add(Component comp, int index)

http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Con…

Gruss, Patrick

Hinzufügen von Komponenten nicht möglich
Hi Patrick,

Danke für die Hilfe.

Nachdem die Matrix mit den Objekten einmal erstellt wurde kann ich keine weiteren Komponenten hinzufügen.

remove(0);
add(getComponent(5), 0);

Das Objekt an der Stelle 0 wird hier wie gewünscht entfernt. Danach sollte das Objekt an der Stelle 5 an der Stelle 0 eingefügt werden.

Das funktioniert aber leider nicht. Die Matrix wird dann mit einem Element weniger angezeigt.

Was mache ich falsch?

Christian

Das Objekt an der Stelle 0 wird hier wie gewünscht entfernt.
Danach sollte das Objekt an der Stelle 5 an der Stelle 0
eingefügt werden.

Das tut er auch, allerdings ueberschreibt er dabei das Object an
Position 0. Deine Liste wird mit remove auch um 1 kleiner, also
vorsicht mit den Indices.
Hast du die Moeglichkeit das mal zu debuggen? Dann kann man sehr
schoen sehen was er da macht.

remove(0);
add(getComponent(5), 0);

Zum Tauschen der Objekte muesstest dann sowas machen.

// QAD
Component comp = getComponent(0); 
add(getComponent(2), 0);
add(comp, 2);

Das geht bestimmt eleganter.

Gruss, Patrick