Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / School & Studie / Huiswerkvragen: Exacte vakken
Reageren
 
Topictools Zoek in deze topic
Oud 12-03-2007, 23:04
Rob
Avatar van Rob
Rob is offline
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.
Met citaat reageren
Advertentie
Oud 13-03-2007, 00:30
Rob
Avatar van Rob
Rob is offline
Okay, ik heb het nu iets anders gedaan. Aangezien het scherm vaststaat (je kunt dus niet resizen), kon ik aan de hand van het eerste vakje de oorsprong bepalen. De rest was uitrekenwerk.

Nu krijg ik netjes de oorsprong van een vakje als ik deze aanklik, maar als ik teken, wordt mijn vierkantje ACHTER het Canvas component geplaatst. Erm, hoe teken ik vanuit mijn Veld klasse OP het Canvas?
__________________
Bad spelling and grammar make me [sic].
Met citaat reageren
Oud 13-03-2007, 06:59
WelVrolijk
WelVrolijk is offline
Ik denk dat je gewoon elk Veld moet toevoegen aan de GridLayout van het speelveld.

En je moet (meen ik) zorgen dat je Veld zichzelf kan hertekenen.
(Daarvoor heb je alleen de coordinaten binnen het veld zelf nodig.)
Met citaat reageren
Oud 13-03-2007, 09:26
Rob
Avatar van Rob
Rob is offline
Het probleem lag een beetje anders. Ik weet niet precies waarom paint T.O.V. het frame ging tekenen en niet T.O.V. mijn Veld, maar ik verwarde wel AWT en Swing elementen waardoor mijn paint achter mijn Canvas kwam.

Ik heb nu geen Canvas maar een JPanel dat paintComponent() override.
__________________
Bad spelling and grammar make me [sic].
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 00:06.