Durch JRadioButton neues Objekt eines JFrame erzeugen

the_skywalker

Mitglied
Hallo,

ich habe folgenden Code:

Code:
if (rbutton[0].isSelected()) {
	new Frame0();
} else if (rbutton[1].isSelected()) {
	new Frame1();
} else if (rbutton[2].isSelected()) {
	new Frame2();
} else if (rbutton[3].isSelected()) {
	new Frame3();
} else if (rbutton[4].isSelected()) {
	new Frame4();
} else if (rbutton[5].isSelected()) {
	new Frame5();
} else if (rbutton[6].isSelected()) {
	new Frame6();
} else if (rbutton[7].isSelected()) {
	new Frame7();
} else if (rbutton[8].isSelected()) {
	new Frame8();
} else if (rbutton[9].isSelected()) {
	new Frame9();
} else if (rbutton[10].isSelected()) {
	new Frame10();
} else if (rbutton[11].isSelected()) {
	new Frame11();
} else if (rbutton[12].isSelected()) {
	new Frame12();
} else if (rbutton[13].isSelected()) {
	new Frame13();
} else if (rbutton[14].isSelected()) {
	new Frame14();
} else if (rbutton[15].isSelected()) {
	new Frame15();
} else if (rbutton[16].isSelected()) {
	new Frame16();
} else if (rbutton[17].isSelected()) {
	new Frame17();
} else if (rbutton[18].isSelected()) {
	new Frame18();
} else if (rbutton[19].isSelected()) {
	new Frame19();
} else if (rbutton[20].isSelected()) {
	new Frame20();
} else if (rbutton[21].isSelected()) {
	new Frame21();
}

Ich lege also 22 Radiobuttons an und bei Auswahl jeden einzelnen soll ein neuer Frame geöffnet werden. Dies habe ich zur Zeit mit eine if-Anweisung gelöst.
Doch dies ist meiner Meinung nach zienlich umständig.
Kann dies auch durch eine for-Schleife oder ähnliches ersetzt werden?

Stefan
 
hm ich kann mir kaum vorstellen, dass du tatsächlich 21 verschiedene Frameklassen benötigst .. Vielleicht hilft dir ja der folgende Ansatz ein wenig weiter ..

PHP:
// Array mit Frames deklarieren
Frame[] frames = new Frame[21];

for (int i = 0; i < 22; i++)
{
     // Frameexemplar erstellen
     if (rbutton[i].isSelected()) frames[i] = new Frame();
}


Gruß Stefan
 
Zuletzt bearbeitet:
Ich benötige tatsächlich 22 verschiedene Frameklassen.
Es geht darum das sich der Frame mit den Radiobuttons öffnet und man dann auswählen kann, welcher Frame gestartet werden soll. Alle haben allerdings einen unterschiedlichen Aufbau und andere Funktionalität.

Den Ansatz mit dem Array von Frames habe ich auch schon probiert, aber allerdings bringt mir das nichts, oder ich bin einfach zu dumm.
 
Warscheinlich letzeres... ;-]

Nun, vielleicht bringt Dir das was:

Code:
Button ab[] = {new Button1(), new Button2(), new Button3()}; //könnten auch mehr sein
Frame af[] = {new Frame1(), new Frame2(), new Frame3()}; //könnten auch mehr sein
for (int i = 0; i < ab.length && i < af.length; i++) {
  af[i].setVisible(ab[i].isSelected());
}
 
Danke schnuffie.
Deine Idee war gut und jetzt klappts.
Wäre ich selber nie drauf gekommen.
Spare mir dadurch jede Menge Code.

Vielen Dank.

Stefan
 
Zurück