PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : dynamische variablennamen in java generieren?


AHF
2003-09-20, 14:46:20
hallo,

ich möchte für ein java applet eine gewisse anzahl von labels und textfeldern erzeugen (awt oder swing) in abhängigkeit von der anzahl der werte eines arrays. leider scheint es nicht möglich zu sein, felder von diesen datentypen zu erzeugen und wenn ich immer denselben variablennamen verwende, wird der logischerweise immer wieder überschrieben.

es sollte ungefähr so aussehen:

for (int i=0; i<"feldname".length; i++)
{
Label l<i> = new Label ("feldname"[i],Label.CENTER);
add(l<i>,...)
}

die variablennamen sollten folglich lauten l0, l1, l2...

weiß jemand, wie das geht? danke für die antworten

Abe Ghiran
2003-09-20, 15:57:03
Hoi, hoi...

Original geschrieben von Awesome
ich möchte für ein java applet eine gewisse anzahl von labels und textfeldern erzeugen (awt oder swing) in abhängigkeit von der anzahl der werte eines arrays. leider scheint es nicht möglich zu sein, felder von diesen datentypen zu erzeugen

Doch, das geht doch ganz einfach mit:


Label[] labels = new Label[dein_array.length];
for(int i=0; i<labels.length; ++i)
labels[i] = new Label();



und wenn ich immer denselben variablennamen verwende, wird der logischerweise immer wieder überschrieben.

es sollte ungefähr so aussehen:


for (int i=0; i<"feldname".length; i++){
Label l<i> = new Label ("feldname"[i],Label.CENTER);
add(l<i>,...)
}



Hmm, hmm. Du brauchst doch da gar keine unterschiedlichen Variablen ?!?! Oder verwechselst du vielleicht die Variable mit dem Objekt?
Wenn du später nicht mehr auf die Labels zugreifen musst, es also nur darum geht diese zu initialisieren und deinem gui hinzuzufügen, reicht doch völlig:


for(int i=0; i<dein_array.length; ++i){
Label l = new Label(dein_array[i],Label.CENTER);
dein_frame/panel/sonst_was.add(l);
}


Wenn du später noch mal auf die Labels zugreifen willst, um z.B. den Text zu ändern, speicherst du sie halt ein einem Array, Vector o.ä. .

Grüße, Jan

AHF
2003-09-20, 18:25:39
sorry, mein fehler. natürlich gehen die textfelder mit arrays. bei den labels, auf die ich später nicht mehr zugreifen will, braucht man nichtmal ein array. hatte vergessen, die felder an panels zu fügen.

trotzdem, danke für deine hilfe.