Java Variablen erzeugung in einer for-schleife

Reficul

Lieutenant
Registriert
Aug. 2006
Beiträge
525
Hi,

ich bastel an einem klienen turnier programm in java und würde gerne anhand der angabe der Spieleranzahl die gleiche anzahl an Textfields zur namenseingabe ausgeben.

vorgestellt hab ich mir das so ungefähr:

for (int i = 1; i <= anzahl; i++) {
JTextfield "name"+ i = new JTextField(15);
}


"name"+i ist natürlich nicht korrekt und soll nur ungefähr veranschaulichen was ich meine.
hat jemand eine idee wie man da herangehen kann?

mir ist auch bewusst das man einfach mehrer TextFields machen kann und nur die wo man namen reinschreibt werten, allerdings würde ich bevor ich diesen weg einschlagen muss, schaun ob es nicht eine andere methode gibt.

mfg Reficul
 
Du brauchst dazu ein Array.

JTextfield[] arrayName = new JTextfield[anzahlDerFelder];
for (int i = 1; i <= anzahl; i++) {
JTextfield arrayName = new JTextField(15);
}
 
Mach doch ein Array draus.
 
oohhhhh,

daran hab ich gedacht, dachte aber eig das geht nur mit primitiven datentypen und nicht mit Objekten!

ok, dann ist das problem gelöst, danke leute ;)
 
Gibt natürlich auch Objektarrays. ;) Solltest du die maximale Größe nicht kennen, könntest du auch noch mit einer Liste arbeiten.
 
Arrays sind viel zu "Low-Level" fuer Java. Sie sind inkompatibel mit lauter Sachen und es wurde schon mehrfach vorgeschlagen/diskutiert, sie aus der Sprache zu entfernen.

Lists sind halt flexibler und ArrayLists sind letztendlich auch nur Arrays, aber eben mit sinnvoller Schnittstelle.

Der TE kann es ja machen wie er will, aber wenn er schon vorschlägt, Variablen mit Zählvariabe zu erstellen, weiß er anscheinend nichts von Listen und die sind halt schon wichtig.
 
Wenn man die Schnittstelle denn braucht. Es ist bei dieser Art Anwendung nicht anzunehmen, dass sich die Zahl der Elemente mal ändern wird... Ich finde es sinnvoll, zur Aufgabe passende Strukturen zu verwende.

Natürlich wird es sich nichts schenken, ob er nen Array, ne ArrayList, LinkedList, oder sogar ganz idiotisch ne Map nehmen würde in diesem Kontext. Klar sollt er Listen kennen, aber ich sehe hier absolut keinen Grund für "lieber"...
Wenn die Anzahl usw nicht vorher feststeht, dann sähe die Situation wiederum ganz anders aus...
 
Zuletzt bearbeitet:
Warum sollte man ein Array als "Low-Level" bezeichnen und z.B. eine ArrayList nicht auch?
Wenn man die genaue Anzahl der Elemente kennt, sollte ein Array doch ideal sein!
Solange er diese nicht nach bestimmten kriterieren sortieren will oder ähnliches, sondern nur ganz einfach darüber iteriert ist doch alles wunderbar.
 
Generell wird die Benutzung von "nativen" Arrays heutzutage (nicht nur in Java übrigens) als Bad Practice angesehen, da sie keinerlei Vorteile bringen. Im Allgemeinen sind die Klassen aus dem Java Collections Framework immer vorzuziehen, schon alleine, weil man nicht gegen ein Interface implementieren kann.
 
@SheepShaver: Wo war jetzt noch mal der Vorteil einer Liste in diesem Fall?
Genauso wie es in Ordnung ist, dass eine ArrayList intern ein Array nutzst, ist für diese interne Datenstruktur ein Array vollkommen in Ordnung...

weil man nicht gegen ein Interface implementieren kann
Ähm den Halbsatz hab ich nicht verstanden..
 
Ganz einfach, das Java Collections Framework erlaubt mir, gegen eine Collection oder List zu implementieren, sprich, die konkrete Implementierung der Collection bleibt verborgen.
Ein lowlevel Array hat in einer highlevel Sprache eigentlich nichts zu suchen. Einzige Ausnahme wäre bei performancekritischen Codezweigen.

Das ist aber nun wirklich nichts neues und wird in jeder Best Practice Sammlung so empfohlen.
 
Dann versteh ich aber das "nicht" nicht in dem Satz.
Und ich persönlich finde nicht, dass ein Array die Eigenschaft "konkrete Implementierung" mitbringt...
 
Zurück
Oben