Asteroid999
Gebruiker
- Lid geworden
- 20 jan 2009
- Berichten
- 19
Ik ben een programma aan het maken dat reageert op pijltje toetsen. In een JFrame maak ik een JPanel, waarin weer een cirkel wordt getekend. Als op links wordt gedrukt, beweegt de cirkel naar links, als op rechts wordt gedrukt naar rechts, etc. Dit werkt allemaal prima, alleen mijn enige probleem is, dat het JPanel ook wordt verplaatst als ik de cirkel verplaats!
Ik heb al het een en ander geprobeerd om dit op te lossen (layout veranderen, spelen met afmetingen van panel en frame, etc), maar het wil nog niet echt lukken... Ik heb al wel eerder gemerkt dat Java nogal vreemd omgaat met waar je knoppen en panels e.d. plaatst. De cirkel kan in theorie ook niet verder dan de breedte/hoogte van je beeldscherm, maar hij gaat er gewoon buiten, en stop pas als die twee keer zo ver is.
Ik heb de jar bijgevoegd, en mijn broncode.
Uitleg classes:
- Main is de GUI, deze tekent het JFrame en voegt het JPanel toe aan het frame.
- Draw is het JPanel, hierin wordt de cirkel getekend, hierin wordt ook bijgehouden op welke toetsen is gedrukt (eigenlijk moet ik voor die toetsen nog een KeyPressed class maken, of die combineren met Move. Maar Move implements Runnable, dus daar kan je geen implements KeyListener bijdoen).
- Move is een class die de x en y positie van de cirkel van Draw verandert. Dit is een Thread class.
Als iemand enig advies heeft, graag!
(P.s., het is een full screen applicatie, met Esc kan deze afgesloten worden)
*Edit: als de cirkel buiten het scherm gaat, kan de applicatie vastlopen, tot nu toe geen idee hoe dat komt. Mijn excuses daarvoor!
**Edit: screenshots toegevoegd, animation.jpg is beginscherm, animation2.jpg als ik de cirkel een stuk naar beneden heb geschoven. Classes geupdate.
Ik heb al het een en ander geprobeerd om dit op te lossen (layout veranderen, spelen met afmetingen van panel en frame, etc), maar het wil nog niet echt lukken... Ik heb al wel eerder gemerkt dat Java nogal vreemd omgaat met waar je knoppen en panels e.d. plaatst. De cirkel kan in theorie ook niet verder dan de breedte/hoogte van je beeldscherm, maar hij gaat er gewoon buiten, en stop pas als die twee keer zo ver is.
Ik heb de jar bijgevoegd, en mijn broncode.
Uitleg classes:
- Main is de GUI, deze tekent het JFrame en voegt het JPanel toe aan het frame.
- Draw is het JPanel, hierin wordt de cirkel getekend, hierin wordt ook bijgehouden op welke toetsen is gedrukt (eigenlijk moet ik voor die toetsen nog een KeyPressed class maken, of die combineren met Move. Maar Move implements Runnable, dus daar kan je geen implements KeyListener bijdoen).
- Move is een class die de x en y positie van de cirkel van Draw verandert. Dit is een Thread class.
Als iemand enig advies heeft, graag!
(P.s., het is een full screen applicatie, met Esc kan deze afgesloten worden)
*Edit: als de cirkel buiten het scherm gaat, kan de applicatie vastlopen, tot nu toe geen idee hoe dat komt. Mijn excuses daarvoor!
**Edit: screenshots toegevoegd, animation.jpg is beginscherm, animation2.jpg als ik de cirkel een stuk naar beneden heb geschoven. Classes geupdate.
Bijlagen
Laatst bewerkt: