Checkboxen Namen setzten über Parameter => Abfragen?

Mulan

Mitglied
Hallo,

nachdem ich meine Oberfläche dank Tipps aus dem Forum zum Laufen bekommen habe, würde ich sie gerne dynamischer machen. (Nochmal danke)
Die Anzeige welche Checkboxen angezeigt werdem im Konstruktor festgelegt (Übergabe also eine String[] mit Namen für die Boxen).
Ich habe folgendes Konstrukt (wobei sCheckboxen des Array aus dem Übergabeparameter ist):

for (int i = 0; i < sCheckboxen.length; i++)
{
scheckboxnamen = sCheckboxen;
JCheckBox scheckboxname_current = new JCheckBox(scheckboxnamen);
pCheckboxes.add(scheckboxname_current);
scheckboxname_current.setText(scheckboxnamen);
scheckboxname_current.setName(scheckboxnamen);
}

Aber jetzt habe ich erneut ein Problem, wie ich in der actionPerformed Methode, die nur über einen Button gelauscht wir d zugreifen kann.

Ich habe ersucht mit this. zu arbeiten, aber keine Methode gefunden, die mir alle angelegten Objekte einer Art gibt. Ich habe daran gedacht, alle Namen in eine Klassenvariable zu schreiben, um dann darauf zuzugreifen, aber irgendwie konnte ich nicht über einen Namen ein Objekt suchen (also ich hätte einen Namen wie Checkbox1 und möchte jetzt schauen, ob es den gibt und dann sehen, ob er selektiert ist).

Hat jemand eine schöne Idee

Vielen Dank

Mulan
 
Hi Mulan,

ich hoffe ich verstehe die Frage richtig, kenne die vorherigen Posts nicht.

Wenn pCheckboxes ein JPanel ist, bekommst du mit der getComponents() Methode ein Array vom Typ Component mit allen Components, welche im JPanel liegen.
Für jedes Element kannst du dann mit instanceof erfragen, ob es vom Typ JCheckBox ist.
Alternativ führst du jede Angelegte Checkbox in einer geeigneten Datenstruktur nochmal extra mit.
Z.b. eine HashMap mit dem Namen als Key und der Referenz auf die Checkbox als Value.

Viele Grüße,
David
 

Zurück
Oben