String von einer Variable als Variable nutzen

Wenn du die Namen einlesen willst, weißt du ja während dem Programmieren ja nicht, was einmal in der Text-Datei stehen wird. Wenn du dann den Namen einfach als String übergeben willst, musst du den String ja auch irgendwie halten und dafür brauchst du auch eine Variable die du bennen musst.
Beim einlesen könntest du zum Beispiel alle Objecte in einer ArrayList speichern, dann kannst du über den Index der Liste auf die einzelnen Objecte zugreifen. Du könntest dann beim JPanel und auch bei allen anderen Swing-Komponenten mit der Methode setName() einen Namen dem Panel geben.


Wenn du halt eine Methode oder eine Variable hast und willst über einen String diese Methode aufrufen, dann ist Reflection die richtige Variante. Per Reflection kannst du auch Objecte einer Klasse erzeugen.

MFG

zEriX
 
Hallo,

das was du machen willst lässt sich ziemlich einfach über eine Map realisieren.
Key ist dabei der Variablenname und Value der entsprechende Wert.

Gruß Tom
 
Könntest du mal kurz erklären warum du das machen willst? Die Variablen die du als String übergeben willst, gibt es die schon, oder sollen die komplett neu angelegt werden und nachher überall verwendbar sein?

MFG

zEriX
 
Danke für die Tips , habe es so ähnlich wie mit einer Map gelöst ...

ich habe einfach die Conteiner Klasse überladen (JPanel) und einen eindeutigen index an jedes JPanel drangeklebt ...

so kann ich mein CJPanel einfach identefizieren und im nachhinein Componenten adden , verändern und auslesen ...

im grunde ist das ja ne selbstgebaute map :)
nur mit dem Vorteil das ich nachdem die Panels benutzt wurden einfach den Wert jedes generieten Panels abfragen kann ...

Die einzigste befürchtung die ich dabei habe ist das das alles evntl etwas speicherlastig wird ;)

mal schaun ^^

Danke nochmal an Thomas und zEriX
 
Ok, wenn du eine neue Variable anlegen willst geht das nicht mit Reflection. Dann kannst du es auch mit einer HashMap lösen.

Da gibt es einen Key und dazu kannst du irgendein Object speichern.

MFG

zEriX
 
Also erstmal du kannst in Java nicht über einen String entscheiden wie eine Variable heißen soll. Du könntest allerdings ne HashMap nutzen.

Code:
private HashMap variablen = new HashMap();
public static void trycatch(String text, String Varart, String Variable)
  {
      int excep = 1;
      InputStreamReader isr = new InputStreamReader(System.in);
      BufferedReader eingabe = new BufferedReader(isr);
      
      while (excep == 1)
      {
      excep = 0;
      System.out.print(text);
      try
         {
          if (Varart == "Int")
          {
          String eingabe = eingabe.readLine();
          variablen.put(Variable, eingabe);
          System.out.println(variablen.get(Variable));
          }
         }
      catch (Exception e)
         {
          System.out.println("Ungültige Eingabe!\n");
          excep = 1;
         }
      }
  }


Ich hoffe, dass hilft dir weiter.

MFG

zEriX
 

Neue Beiträge

Zurück