Namen von automatisch erzeugten JTextFields herausfinden…

  • Themenstarter Themenstarter Sascha.java
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
S

Sascha.java

Gast
Hallo,
Kann mir jemand bei folgendem Problem helfen:

Ich erzeuge für die Benutzerverwaltung in einem Dialog mehrere JTextFields,
Nämlich soviele wie es benutzer und passwörter wie es in meinem 2d array users gibt.
Diese JTextFields speichere ich in einem generischen Vector zwischen.

Code:
for(int i =0; i<users.length; i++) 
         { 
                 fields.add(new JTextField(users[i][0], 10)); 
                 fields.add(new JTextField(users[i][1], 10)); 
         }



Wenn ich nun später neue/geänderte Werte aus den Textfeldern wieder auslesen möchte…
Wie mache ich das??
Ich weiß ja nicht wie diese Textfeldobjekte heißen, so dass ich auf sie mittels .getText() zugreifen kann?
String content = ???.getText();

Falls das so an sich nicht funktioniert, wie könnte ich meine for Schleife verändern damit
Ich JTextFields mit fortlaufenden Namen erzeuge?
Sowas wie… Bsp:
Code:
for(int i =0; i<users.length; i++) 
         { 
                 JTextField fieldnr i = new JTextField(users[i][0], 10) 
         fields.add(fieldnr i); 
         }
]

Es wäre ungünstig vorher eine bestimmte anzahl an JTextFields zu deklarieren,
Da ich im vorhinein nicht weiß wieviele ich brauche, die anzahlt ist ja von den usern+passwörtern
Abhängig, welche bei jedem Programmstart anders sein könnte.

Vielen Dank schonmal,
Habe lange rumgerätselt, aber keine Lösung gefunden.
 
Ist meines Wissens nach nicht möglich, da du die Objekte bewusst anonym erzeugst.
Erzeug dir doch einfach vorher ein JTextField-Objekt, welches du evtl. in einer HashMap anhand des Schlüssels aus deinem array users ablegst, so dass du nachher noch drauf zugreifen kannst.
 
moin, danke schonmal.

habe mit einer hashmap noch nicht gearbeitet..würde sich denn dadurch das Problem des "ich weiß vorher nicht wieviele ich erzeugen muss" gelöst?

Mir kam da gerade der Gedanke eine Schnittstelle zu definieren, in der soviele Fields erzeugt werden, wie ich als Parameter an eine MEthode übergeben werde.

Dieser Parameter wird dann beim Aufruf einfach length des Arrays sein...
das ist mir gerade ganz spontan einfgefallen und ich kanns grad net testen,
ich bin mir auch nicht sicher ob das DAS ist wozu schnittstellen gedacht wurden ^^
aber sofern es funktionieren wird... ich muss das mal versuchen.
Danke dir aber schonmal.!
 
Anonymous hat gesagt.:
habe mit einer hashmap noch nicht gearbeitet..würde sich denn dadurch das Problem des "ich weiß vorher nicht wieviele ich erzeugen muss" gelöst?

Ja, das Problem würde gelöst werden.

Schau dir die HashMap in der API einfach mal an. Damit kannst du dein Problem auf jeden Fall angehen und lösen.
 
Warum nicht über den Vector zugreifen??? Steh ich aufm' Schlauch oder ihr?
Code:
JTextField tmp = (JTextField)fields.get(0);
String value = tmp.getText();

???
mfg
jagdfalke
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben