G
Guest
Gast
Hoffe mal das ist hier richtig..
Folgendes: Habe ein Button-Array auf das von einigen Stellen und Klassen aus zugegriffen wird und will es mit einem neuen, benutzerdefinierten Array ueberschreiben. Die neuen Buttons sollen dann natuerlich auch angezeigt werden, wogegen die alten geloescht werden sollen. Jede Methode, die zuvor das erste Array aufgerufen hat, soll nun das zweite Aufrufen.
Etwas detaillierter als Beispiel:
Das zurzeit existierende Button-Array[3][3] enthaelt 9 Buttons, die quadratisch im Container angeordnet sind, also auch angezeigt werden. Nun soll der Benutzer die Wahl haben die Anzahl der Buttons innerhalb dieses Quadrats beliebig zu verkleinern oder zu vergroeßern. Es soll nur die Seitenlaenge (in Buttons) waehlbar sein.
Wenn also der Benutzer eine Seitenlaenge von 5 eingibt, dann soll das vorhandene Array[3][3] mit einem Array[5][5] überschrieben werden. Alle 25 Buttons des Arrays[5][5] sollen dann im Container im selben Quadrat angeordnet werden.
Das ganze soll auch von z.B. Array[5][5] auf Array[3][3] funktionieren, wobei wichtig ist, dass die Groeße nicht nur "simuliert" ist, also dass das Array[3][3] bei einem Aufruf mit z.B. [4][5] eine OutOfBoundsException liefert.
Zusaetzlich existieren Methoden, die die Eigenschaften der Buttons je nach geklicktem Button aendern (z.b. das Icon). Das heißt, dass das neue Array den selben Namen haben muss wie das vorherige, sonst wuerden die Aufrufe ja ins Leere gehn. Das vorherige Array soll also ueberschrieben werden.
Mein Problem ist nun hauptsaechlich, dass ich außerhalb der Initialisierung der Komponenten meinem Container mit container.add(Objekt); nichts mehr hinzufuegen kann. Ich kann zwar das Array in einer Methode ueberschreiben, kann aber in der Methode nicht die Buttons zum Container hinzufuegen.
Habe es bisher sogemacht
Dann hab ich zwar ein Array mit neuer Groeße und dem selben Namen, kann aber die ganzen Buttons nicht anzeigen.
Gibt es nicht irgendwie eine moeglichkeit innerhalb des Programmablaufs Swing Ojekte zum Container hinzuzufuegen?
Keine Ahnung wie ich das sonst bewerkstelligen sollte..
Folgendes: Habe ein Button-Array auf das von einigen Stellen und Klassen aus zugegriffen wird und will es mit einem neuen, benutzerdefinierten Array ueberschreiben. Die neuen Buttons sollen dann natuerlich auch angezeigt werden, wogegen die alten geloescht werden sollen. Jede Methode, die zuvor das erste Array aufgerufen hat, soll nun das zweite Aufrufen.
Etwas detaillierter als Beispiel:
Das zurzeit existierende Button-Array[3][3] enthaelt 9 Buttons, die quadratisch im Container angeordnet sind, also auch angezeigt werden. Nun soll der Benutzer die Wahl haben die Anzahl der Buttons innerhalb dieses Quadrats beliebig zu verkleinern oder zu vergroeßern. Es soll nur die Seitenlaenge (in Buttons) waehlbar sein.
Wenn also der Benutzer eine Seitenlaenge von 5 eingibt, dann soll das vorhandene Array[3][3] mit einem Array[5][5] überschrieben werden. Alle 25 Buttons des Arrays[5][5] sollen dann im Container im selben Quadrat angeordnet werden.
Das ganze soll auch von z.B. Array[5][5] auf Array[3][3] funktionieren, wobei wichtig ist, dass die Groeße nicht nur "simuliert" ist, also dass das Array[3][3] bei einem Aufruf mit z.B. [4][5] eine OutOfBoundsException liefert.
Zusaetzlich existieren Methoden, die die Eigenschaften der Buttons je nach geklicktem Button aendern (z.b. das Icon). Das heißt, dass das neue Array den selben Namen haben muss wie das vorherige, sonst wuerden die Aufrufe ja ins Leere gehn. Das vorherige Array soll also ueberschrieben werden.
Mein Problem ist nun hauptsaechlich, dass ich außerhalb der Initialisierung der Komponenten meinem Container mit container.add(Objekt); nichts mehr hinzufuegen kann. Ich kann zwar das Array in einer Methode ueberschreiben, kann aber in der Methode nicht die Buttons zum Container hinzufuegen.
Habe es bisher sogemacht
Code:
private JButton[][] oldarray = new JButton[oldsize][oldsize];
void resize() {
JButton[][] newarray = new JButton[newsize][newsize];
oldarray = newarray;
for( i , j <newsize) {
oldarray[i][j] = new JButton();
...
}
}
Dann hab ich zwar ein Array mit neuer Groeße und dem selben Namen, kann aber die ganzen Buttons nicht anzeigen.
Gibt es nicht irgendwie eine moeglichkeit innerhalb des Programmablaufs Swing Ojekte zum Container hinzuzufuegen?
Keine Ahnung wie ich das sonst bewerkstelligen sollte..