Toon posts:

[Java] object toevoegen op een JFrame als ie al draait

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben een spelletje voor school aan het maken, een remake van dat oude qbasic spel Gorilla. Afijn, de gehele scene staat er al, er is alleen 1 ding dat mij behoorlijk irriteert:

Als de player de hoek en zn snelheid gekozen moet het aapje een banaan gooien. Ik heb ervoor gekozen dat dit banaantje wel wordt gemaakt bij et opstarten, maar nog null is:

private static Banaan banaan;

class Banaan heet dat dus, wat gewoon een JFrame met een ImageIcon erop is. Zodra de player de banaan gooit, wordt het banaantje aangemaakt met new Banaan() en krijgt het zn positie met setBounds. Aangezien het bij dit spel niet handig is om een layoutmanager te gebruiken heb ik dat ook maar niet gedaan. Maargoed, het probleem: de banaan verschijnt niet!!!

dit is het stukkie code dat de banaan zou moeten doen verschijnen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
    public void gooibanaan()
    {
        banaan = new Banaan();
        banaan.setBounds(AapAanZet.getLocation().x + 13 + (int)(Math.sin(Math.toRadians(AapAanZet.worpangle)) * 50),
            AapAanZet.getLocation().y + 13 - (int)(Math.cos(Math.toRadians(AapAanZet.worpangle)) * 50), 24, 24);
        banaan.dx = Math.sin(Math.toRadians(AapAanZet.worpangle)) * AapAanZet.worpspeed;
        banaan.dy = -Math.cos(Math.toRadians(AapAanZet.worpangle)) * AapAanZet.worpspeed;
        frame.getContentPane().add(banaan);
        btimer = new java.util.Timer();
        btimer.schedule(new BanaanMover(), 2500, 2500);

    }


ik heb al dergelijke dingen als frame.repaint() of frame.getContentPane.repaint() toegevoegd, maar dit mocht niet baten. Ook heb ik de volgorge van setBounds en frame.add omgedraaid; hielp ook niet. Maar, het gekke is dat als er een ander object op de frame wordt verplaatst, dan verschijnt het banaantje ineens wel!! [wat dus wil zeggen dat t banaantje gewoon wordt gemaakt en zn goede positie krijgt]

Is er een oplossing dat ervoor zorgt dat het banaantje WEL zichtbaar wordt?

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 02-08 20:09
frame.setVisible(true);

:?

Verwijderd

Topicstarter
t werkt wel, maar toch een beetje vaag dat je dat commando uit moet voeren, ook al staat de window al recht voor je neus :?

maargoed, java zit me wel eens meer tegen

  • Mastermind
  • Registratie: Februari 2000
  • Laatst online: 02-08 20:09
En moet je niet frame.setBounds(blablabla) doen ipv banaan.setBounds(blablabla)?
Want het banaantje wordt op het frame getekend, en het frame waar de banaan op staat getekend beweegt.
Dus de banaan moet gewoon op 1,1 staan volgens mij.

edit:
Laatmaar, vermoedelijk is het een groot frame waarop een banaantje zijn boundaries krijgt

[ Voor 21% gewijzigd door Mastermind op 29-10-2003 22:17 ]


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

wel vaag dat je daar een Frame voor gebruikt.
Volgens mij kun je beter een JLabel ervoor gebruiken.
Verwijderd schreef op 29 oktober 2003 @ 22:12:
t werkt wel, maar toch een beetje vaag dat je dat commando uit moet voeren, ook al staat de window al recht voor je neus :?

maargoed, java zit me wel eens meer tegen
Zo vreemd is dat niet. Een Frame is een venster en je moet idd eerst SetVisible doen voordat hij zichtbaar wordt. Ook moet je hem een grootte geven :)

[ Voor 41% gewijzigd door wasigh op 29-10-2003 23:41 . Reden: Doe ik weer eens een post, kan ik hem daarna 3 keer editen wegens typo's :'( ]