Strings als Variablennamen benutzen möglich?

mhm :(
irgentwie geht das nicht mti reflection, ich möchte objekten die ich immer wieder erstelle nen variablen namen zuweisen.

Java:
for(int count = 0; count != 10; count++){
String name = "Label";
name = name + count;
Jlabel name = new JLabel;     <------- ist das irgentwie möglich da den Wert des Strings als Variablen namen zu übernehmen****?^^ Das wäre konkret das was ich brauche^^

}
 
Zuletzt bearbeitet:
Die Variablen, auf die du zugreifen willst, gibts schon im Programm als Klassenmember,
du hast den Namen aber nur im String und willst dir endlose if´s sparen.
Richtig?

Wenn "k" das Objekt der enthaltenden Klasse ist, die Variable "name" heißt und vom Typ "t" ist:
Wert auslesen:
Java:
bla = (t)(k.getClass().getField("name").get(k))
Wert auf neu setzen:
Java:
k.getClass().getField("name").set(k, (Object)neu)

Findet man aber alles leicht über Google...
 
Nein, das Problem ist ich möchte die Variablen neu erstellen, hab das obere bearbeitet während du das gepostet hast^^ Wie man die neu erstellt konnte ich leider nicht über google herausfinden :(, wie ich sie verändere schon...
 
Und nach dem Erstellen sollen sie wie normale Variablen im Quelltext verwendet werden können?
Unmöglich. Der Compiler wird nämlich zeurst eine Fehlermeldung bringen, dass es die verwendeten Variablen nicht gibt. Zum Ausführen kommt man gar nicht mehr.

Wenn du beliebig viele Variablen brauchst, warum kein Array/Liste/... verwenden?
 
Java:
	private void setLabels() {
		int heigth = this.frmCommunity.getSize().height;
		int lheigth = 31;
		while (heigth != 0) {
			int count = 0;
			count++; 
			String jlname = "label" + count;
			JLabel name = new JLabel("hihi");
			name.setForeground(new Color(173, 255, 47));
			name.setBounds(10, lheigth, 145, 15);
			frmCommunity.getContentPane().add(name);
			jLabelArray.add(name);
			if (heigth <= 48) {
				heigth = 0;
			} else {
				lheigth = heigth - 33;
				heigth = heigth - lheigth;
			}
		}
	}

das ist mein Quellcode, ich würde die Variablen über meine ArrayList aufrufen. Das Problem ist nur das mir nur die erste gepaintet wird.

Java:
setLabels();
		int count = jLabelArray.size();
		while (count != 0){
			frmCommunity.getContentPane().add(jLabelArray.get(count-1));
			count--;
		}
 
Zuletzt bearbeitet von einem Moderator:
Wenn du in der Schleife (im else) lheigth (es heißt height) veränderst wirst du keine gleichmäßigen Abstände bekommen.
Du willst vom unteren Fensterrand weiter rauf?
Bei dir gehts nämlich immer weiter runter. Durch die lheight-Änderung.

Und zum Label...du machst Labels mit hihi.
Wo brauchst du da String-Variablennamen?
 
hihi is nur grad nen platzhalter, wollte wissen ob es funktioniert, diese wollte ich im nachinein richtig füllen
das mit dem runter gehen is absicht,
das mi den abständen muss ich noch bearbeiten^^

ok jetzt funktionierts doch, aber kann man das mit den variablen namen, was eig meine frage war, nicht irgentwie machen?
 
Zuletzt bearbeitet von einem Moderator:
Nein.

Verwende Arrays etc.
Können auch Strings als Indizes haben ("Map").
Aber so als normalen Variablennamen im Quelltext verwenden geht nicht
(außer das Programm kompiliert sich nach jeder Änderung selbst neu. Großer Unsinn)

Bitte keine Doppelposts, es gibt einen "Bearbeiten"-Button.
 
Zurück