event.getSource() bei Arrays

Da ich eine unbestimmte Menge von Labels gleichen Formats habe, habe ich eine ArrayListe angelegt. Jetzt würde ich gerne beim EventHandler für die Labels verschiedene Funktionen anwenden.

Normale würde ich jetzt:

do irgendwas
} else if(event.getSource==label2){
do irgend was anderes 
} usw. ```

kann ich das mit meinen Listenindex irgendwie abkürzten ? 
z.b.

```if(event.getSource()== arrayListLabel){ // die ganze array Liste, also irgend ein Element dieser Liste
lblOut.setText(String.format("%d", * )) // * soll mein ArrayListenIndex sein
}```

Beschreibe doch mal konkreter was Du vorhast, vielleicht gibt es da elegantere Lösungen.

Grundsätzlich könne man jeder Komponente einen eigenen (anonymen) Listener zuweisen. Dann kann man sich die Prüfung sparen.
Oder wenn man für alle den selben Listener verwendet, erhält man mit list.getIndexOf(Object) den Listenindex.

Vielleicht hilft das hier: http://forum.byte-welt.net/showthread.php?p=23327#post23327

wieder mal die perfekte Antwort^^

[QUOTE=_Michael;23310]Beschreibe doch mal konkreter was Du vorhast, vielleicht gibt es da elegantere Lösungen.

Grundsätzlich könne man jeder Komponente einen eigenen (anonymen) Listener zuweisen. Dann kann man sich die Prüfung sparen.
Oder wenn man für alle den selben Listener verwendet, erhält man mit list.getIndexOf(Object) den Listenindex.[/QUOTE]

hm die 2te Möglichkeit hab ich noch nicht ganz verstanden. list.getIndexOf(event.Source())? oder welches Objekt frag ich da ab ?

Aber hab ja auch mit den AnonymenListenern und der Schleifenmethode 2 lösungen … wobei ich auf die Schleifen Variante selber hätte kommen sollen :confused:

danke euch beiden kann wieder weiter spielen :slight_smile:

Was _Michael angedeutet hat, ist eine Alternative, die man verwenden kann, wenn die Components nicht in einem Array liegen, sondern in einer List: Dann braucht man nicht “manuell” durch die Schleife zu laufen, sondern ruft einfach
int index = listOfComponents.indexOf(event.getSource());
auf, und bekommt den Index, den die Component in der Liste hat (oder -1, falls nicht vorhanden).

Habe das verlinkte Beispiel mal um diesen Fall erweitert. Tatsächlich kann man auch aus jedem Array einfach eine List machen…

JButton array[] = new JButton[3];
List<JButton> list = Arrays.asList(array);

aber … wenn man das auch noch dort erklären würde, würde wohl zu viel Information vermischt…