Ik heb een klasse met een speelveld erop. Het is een soort 5-op-een-rij en als je op een vakje klikt, wordt dat vakje gekleurd met de kleur van de speler. Er zijn er hier, in dit geval, 9x9 vakjes.
Om dit doel te bereiken heb ik een class Veld geschreven. Veld extends Canvas en overwrites de methode paint() en update().
Op het speelveld zelf heb ik een variabele: Veld[] vlakjes = new Veld[81];
Op het speelveld heb ik een JPanel met als Layout Manager een GridLayout:
JPanel veldPaneel = new JPanel(new GridLayout(9,9));
en deze populeer ik in een for-loop als volgt:
for(int index = 0; index < 81; index++) {
vlakjes[index] = new Veld(Color.WHITE); //om de veldjes standaard een witte kleur te geven
vlakjes.addMouseListener(new VeldHandler());
//etc.
veldPaneel.add(vlakjes[index]);
}
Nu dacht ik dus, dat als ik mijn veldje Canvas laat extenden, dat ieder veldje dus zijn eigen unieke oorsprong had. Maar als ik getBounds().getX() en getBounds().getY() doe, returned ie ALTIJD 0,0.
Dit zou geen probleem zijn, als die 0,0 niet als de oorsprong van het frame werd gezien maar als de oorsprong van mijn component.
Maar hij returned dus de oorsprong van het frame en niet van het component (wat, bv, op 400,500 staat).
Hoe vind ik de coördinaten van het component ten opzichte van het frame?
__________________
Bad spelling and grammar make me [sic].
Laatst gewijzigd op 12-03-2007 om 23:07.
|