Mensen ik ben nu al een week of wat bezig met de java2d api,
toch is er iets waar ik nou niet helemaal uit kom.
Als je in java een object bijvoorbeeld een rectangle wil tekenen,
dan zet je in je paint() methode -na Graphics naar een Graphics2d gecast
te hebben: g2d.fill(new Rectangle2D(*,*,*,*));
En dan wordt er netjes een vierkantje afgedrukt, wil je
dat vierkantje verplaatsen dan verander je een van de *-en en je
vierkant staat op een andere plaats. Nou zit ik dus met het volgende:
Ik wil nadat ik op een knop geklikt heb dat het vierkant 85 pixels omhoog
gaat. Nou geen probleem zou je denken zet een methode in je buttonHandler
die er voor zorgt dat als er op de knop gedrukt wordt de waarde van dat sterretje
verandert. Nou dat werkt ook wel. In MyCanvas zit een methode setPaint() en die
verandert die waarde, maar als je dus wilt dat het vierkant langzaam 85 pixels omhoog gaat, dan kom je in de problemen.
Ik heb het trouwens eerst het schokkend verversen weggehaal door de
update() er zo uit te laten zien:
daarna dacht ik gewoon tegen de setpaint te zeggen
maar hier trapt java niet helemaal in geloof ik, wat gebeurt er namelijk
repaint wordt pas na de while lus aangeroepen. Ik denk persoonlijk
dat die while lus te snel is voor de repaint() methode.
Maar ik zie geen andere oplossing, ik ben al een poosje bezig met het
boek java media api's cross-platform Imaging, Media and Visualization
maar ik heb na 4 hoofdstukken nog steeds niets kunnen vinden wat hier nou van toepassing zou kunnen zijn.
Heb ook al de halve java docs door geworsteld maar daar vindt ik toch ook niet wat ik zoek.
toch is er iets waar ik nou niet helemaal uit kom.
Als je in java een object bijvoorbeeld een rectangle wil tekenen,
dan zet je in je paint() methode -na Graphics naar een Graphics2d gecast
te hebben: g2d.fill(new Rectangle2D(*,*,*,*));
En dan wordt er netjes een vierkantje afgedrukt, wil je
dat vierkantje verplaatsen dan verander je een van de *-en en je
vierkant staat op een andere plaats. Nou zit ik dus met het volgende:
Ik wil nadat ik op een knop geklikt heb dat het vierkant 85 pixels omhoog
gaat. Nou geen probleem zou je denken zet een methode in je buttonHandler
die er voor zorgt dat als er op de knop gedrukt wordt de waarde van dat sterretje
verandert. Nou dat werkt ook wel. In MyCanvas zit een methode setPaint() en die
verandert die waarde, maar als je dus wilt dat het vierkant langzaam 85 pixels omhoog gaat, dan kom je in de problemen.
Ik heb het trouwens eerst het schokkend verversen weggehaal door de
update() er zo uit te laten zien:
Java:
1
2
3
4
| public void update(Graphics g) { paint(g); } |
daarna dacht ik gewoon tegen de setpaint te zeggen
Java:
1
2
3
4
5
| While(int t=0; t<85; t++) { hoogte-=1; repaint(); } |
maar hier trapt java niet helemaal in geloof ik, wat gebeurt er namelijk
repaint wordt pas na de while lus aangeroepen. Ik denk persoonlijk
dat die while lus te snel is voor de repaint() methode.
Maar ik zie geen andere oplossing, ik ben al een poosje bezig met het
boek java media api's cross-platform Imaging, Media and Visualization
maar ik heb na 4 hoofdstukken nog steeds niets kunnen vinden wat hier nou van toepassing zou kunnen zijn.
Heb ook al de halve java docs door geworsteld maar daar vindt ik toch ook niet wat ik zoek.
[ Voor 3% gewijzigd door intrix op 17-12-2003 14:37 ]
welcome my son, welcome to the machine