PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java Index eines Objektes bekommen



100
29.06.2010, 21:04
Hey, ich habe zwei voneinander unabhängige Programme.. das eigentliche Programm, und die GUI.
Es gibt ein Feld lauter Labels und per Klick möchte ich diese färben.

Gleichzeitig ist das ganze aber auch an ein anderes Programm gebunden, welches den genauen Status eines Feldes speichert. Es sind also zwei mehrdimensionale Arrays, eines speichert den Wert in Form von Integern, das andere besteht aus Labeln.

Das aktuell angewählte Label bekomme ich so:
e.getComponent().setBackground(Color.blue);

Aber jetzt muss ich auch noch den Wert in dem anderem Array anpassen, und dafür bräuchte ich den Index dieser Komponente, da beide Arrays gleich groß sind.

Weiß jemand wie das geht? :)

Jut4h.tm
30.06.2010, 10:32
O.o ... Was machst du denn XD
also nochmal, was willst du machen und welchen index willst du ? den von der 2. dimension?

AlterHacker
30.06.2010, 10:57
Ganz einfach ;-)


int x = -1, y = -1;
for(int px = 0; px < **größe**; px++) {
for(int py = 0; py < **größe**; py++) {
if ( labelarray[px][py] == e.getComponent() ) { x = px; y = py; }
}
}
if( x == -1 && y == -1 ) Fehler
else {
anderesarray[x][y] = "Was anderes";
}

100
30.06.2010, 16:53
Jap so hatte ich das auch gelöst.. ist bei mehr als 200*200 Labeln aber umständlich.

Beim logischen Nachdenken ist mir dann jedoch aufgefallen, dass die Label in dem Frame ja alle gleich groß sind (meistens 20) und jeweils 5 Pixel Abstand zur Panel-"Wand" haben. Also kann ich mit den Koordinate ganz einfach den Index des Labels errechnen ;)
Ist nur in anderen Fällen sicher nicht möglich..