Cirkel naar links verplaatsen

Status
Niet open voor verdere reacties.

fvdstarre

Gebruiker
Lid geworden
1 mrt 2007
Berichten
25
Goedenmorgen,

Ik ben weer eens druk bezig met Java te leren en nu ben ik tot een punt gekomen dat ik een Cirkel met g.drawOval moet tekenen, waarna ik het via een knop naar links moet verplaatsen (en eventueel ook naar rechts).

Tot nu toe heb ik deze code waar vast wel aardig wat fout aan is. ^_^ Kan iemand mij hier verder mee op weg helpen?

public class BC extends Applet
{
Button knop;

public void init()
{
knop = new Button( "Links" );
knop.addActionListener( new KnopHandler() );
add( knop );
}

public void paint( Graphics g )
{
g.drawOval( 75, 75, 125, 125 );
}

class KnopHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
//Hier moet iets komen lijkt mij - geen idee wat.
}
}
}
 
Met deze code ligt de plaats van de cirkel vast. Dat doe je namelijk in de paint() methode. De parameters van de drawOval() methode geven de positie en grootte van de cirkel aan. Wat je kunt doen is daar geen vaste waarden (zoals 75, 75, ...) invullen, maar er variabelen voor gebruiken. Als je dan de waarde van zo'n variabele aanpast en de cirkel opnieuw laat tekenen dan is die verplaatst.
 
Ah, ok. Ik heb het al opgelost. Dit was dus de correcte code:

{
int x_position = 75;
Button left, right;

public void init()
{
left = new Button( “Left” );
left.addActionListener( new LeftKnopHandler() );
add( left );

right = new Button( “Right” );
right.addActionListener( new RightKnopHandler() );
add( right );
}

public void paint( Graphics g )
{
g.setColor( Color.yellow );
g.fillRect( 0, 0, 500, 500 );

g.drawOval( x_position, 75, 125, 125 );
g.setColor( Color.red );
g.fillOval( x_position, 75, 125, 125 );
}

class LeftKnopHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
x_position -= 10;
repaint();
}
}

class RightKnopHandler implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
x_position += 10;
repaint();
}
}
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan