Buttons und andere Komponenten in Schleife erstellen

Timo-Beil

Mitglied
Hi, ich bins nochmal.

Ich will gerade ein Programm schreiben, in dem man etwas über 200 Eingaben in Textareas machen soll, die danach wieder ausgelsen werden sollen.

Da es irgendwie uncool wäre alle Textareas einzeln zu erstellen, wollte ich das Erstellen und das Auslesen in eine Methode auslagern.

Ich weiss allerdings nicht wie ich zur Laufzeit eine Textarea erstellen kann, auf die ich danach wieder mit getText() zugreifen kann.

Hat Jemand eine Idee?

Timo
 
Moin!
Musst du denn für jede Eingabe ein neues TextFeld erstellen? Reicht es nicht, den Text zwischenzuspeichern?

Aber zu deiner Frage.. TextFelder in einem Vector speichern. Und dann später mittels Schelife durchlaufen...

*grüssle*
MeinerEiner
 
Alles klar, danke für deine Antwort.

Du hast recht es würde auch so gehen, dass ich den Text zwischenspeichere, da habe ich vorher gar nicht dran gedacht.

Aber nochmal zu der Frage (so aus Interesse):
Den Ansatz mit dem Vektor habe ich nicht ganz verstanden. Das Problem ist ja erstmal, dass man zur Laufzeit die Eingabefelder erstellen muss.

Und man kann ja nicht folgendes machen:

private void feldErstellen (String nameDesFeldes){
JTextArea nameDesFeldes=new JTextArea();
}

Hast du da eine Idee zu? Oder vielleicht einen guten Link?

Vielen Dank,

Timo
 
Du musst deinen TextFeldern ja auch nicht Namen geben, um auf zu zuzugreifen:

Code:
Vector<JTextArea> areas = new Vector<JTextArea>();
areas.add(new JTextArea());
JTextArea area = areas.get(0);


Und, wenn du unbedingt über einen Namen und nicht über einen index auf dein Textfeld zugreifen moechtest, kannst du ja auch eine HashMap nutzen:
Code:
HashMap<String, JTextArea> areas = new HashMap<String,JTextArea>();

private void feldErstellen (String nameDesFeldes){
    areas.put(nameDesFeldes,new JTextArea());


}
//Zugriff erhaelt man dann mit:
JTextArea area = areas.get(nameDesFeldes);

*gruessle*
MeinerEiner
 
Zurück