package hulp; import java.awt.*; import javax.swing.*; // Klasse voor de bal op een paneel public class GeanimeerdeBalPaneel extends JPanel { private int horizontalePlaats = 250; // x-locatie begint in het midden private int verticalePlaats = 150; // y-locatie begint in het midden boolean naarBeneden = true; // richting waarin de bal beweegt boolean run = true; // de animatie loopt tot run op false wordt gezet final int DELAY = 20; // tijd in milliseconden tussen 2 tekeningen van de animatie. Dit bepaalt dus de snelheid van de animatie // geef de huidige x-positie public int getHorPlaats() { return horizontalePlaats; } // stel de x-positie in zoals aangeleverd public void setHorPlaats(int nieuweHorPlaats) { horizontalePlaats = nieuweHorPlaats; } // teken de bal, oranje met zwarte lijnen public void paintComponent(Graphics g) { super.paintComponent( g ); final int BALDIAMETER = 100; // grootte van de bal g.setColor(Color.ORANGE); g.fillOval(horizontalePlaats, verticalePlaats, BALDIAMETER, BALDIAMETER); // gekleurde bal g.setColor(Color.BLACK); g.drawOval(horizontalePlaats, verticalePlaats, BALDIAMETER, BALDIAMETER); // omtrek van bal g.drawOval(horizontalePlaats + BALDIAMETER / 4 , verticalePlaats, BALDIAMETER / 2, BALDIAMETER); // lijnen op de bal } // voert de animatie van de bal uit public void animatie(){ while(run) { if (naarBeneden) verticalePlaats += 2; else verticalePlaats -= 2; if (verticalePlaats > 250) naarBeneden=false; // bal botst en gaat terug naar boven if (verticalePlaats < 10) naarBeneden=true; // bal valt terug naar beneden repaint(); try { Thread.sleep(DELAY); // thread doet DELAY milliseconden niets } catch (InterruptedException e) { } } } }