Hi
, ich programmiere etwas in Java für die Schule. Mein Ziel ist es aus 100 Objekten der Klasse Feld durch Mausklick auf einen jeweiligen Wert zuzugreifen. Ich will aber nicht für alle 100 Objekte jedes Mal einen eigenen MouseListener mit allem drum und dran schreiben. Deshalb hab ich versucht das Problem so zu Lösen: (Felder[] enthält die Objekte FeldA1 - FeldF10, von denen ich die Werte haben will und Maus[] die Mauslistener m1-m100, istbesetzt() gibt den Wert zurück)
[Java] public void ermittleWert()
{
for(i=0;i<99;i++)
{ Maus = new MouseAdapter(){
public void mouseClicked(MouseEvent mEvent) {
System.out.println(Felder.istbesetzt());
}
};
Felder.addMouseListener(Maus);
}
}[/Java]
Das Problem is jetzt, dass egal wo ich hinklicke immer der Wert des letzen Felds zurückgegeben wird, vermutlich weil [Java]Felder.istbesetzt()[/Java] ja erst aufgerufen wird, wenn die Maus geklickt wird, und i dann schon 99 ist. Ich hab leider keine Idee wie ich das verhindern kann, kann mir jemand helfen? ... Schonmal vielen Dank, euer Chris
[Java] public void ermittleWert()
{
for(i=0;i<99;i++)
{ Maus = new MouseAdapter(){
public void mouseClicked(MouseEvent mEvent) {
System.out.println(Felder.istbesetzt());
}
};
Felder.addMouseListener(Maus);
}
}[/Java]
Das Problem is jetzt, dass egal wo ich hinklicke immer der Wert des letzen Felds zurückgegeben wird, vermutlich weil [Java]Felder.istbesetzt()[/Java] ja erst aufgerufen wird, wenn die Maus geklickt wird, und i dann schon 99 ist. Ich hab leider keine Idee wie ich das verhindern kann, kann mir jemand helfen? ... Schonmal vielen Dank, euer Chris