package LoopExample; import java.awt.*; import java.awt.event.*; import javax.swing.*; // Klasse voor de bal op een paneel public class GeanimeerdeBalPaneelTimer extends JPanel implements ActionListener { 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 final int DELAY = 20; // tijd in milliseconden tussen 2 tekeningen van de animatie. public Timer timer = new Timer(DELAY, this); // TIMER OBJECT // 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 } // DOOR MIDDEL VAN TIMER public void actionPerformed(ActionEvent event) { if (event.getSource() == timer) { 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(); } } }