Computer Science 225
Advanced Programming
Spring 2017, Siena College
SimpleAnimation BlueJ Project
Click here to download a BlueJ project for SimpleAnimation.
SimpleAnimation Source Code
The Java source code for SimpleAnimation is below. Click on a file name to download it.
import java.awt.Color; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.Timer; /** * Example SimpleAnimation: roll a ball across the screen * * @author Jim Teresco, Siena College, Computer Science 225, Spring 2017 * */ public class SimpleAnimation { public static void main(String[] args) { new RollingBall(); } } /** * class to manage the JFrame that will contain the rolling ball * * @author Jim Teresco */ class RollingBall extends JFrame { private static final int WINDOW_SIZE = 400; private static final int FLOOR_Y = 300; private static final int BALL_SIZE = 50; private static final int BALL_SPEED = 3; private static final int TIMER_DELAY = 20; /** current x coordinate of the rolling ball */ private int ballX; /** * Construct a new RollingBall, set up for animating */ public RollingBall() { // set up the JFrame setSize(WINDOW_SIZE, WINDOW_SIZE); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); // put the ball at its starting position ballX = -BALL_SIZE; Timer t = new Timer(TIMER_DELAY, new ActionListener() { // the timer will wake up and call this method every // TIMER_DELAY milliseconds. @Override public void actionPerformed(ActionEvent e) { ballX += BALL_SPEED; if (ballX > WINDOW_SIZE) ballX = -BALL_SIZE; repaint(); } }); t.start(); } /** * paint contents of our frame * * @param g Graphics object on which to draw */ @Override public void paint(Graphics g) { g.setColor(Color.white); g.fillRect(0, 0, WINDOW_SIZE, WINDOW_SIZE); g.setColor(Color.black); g.drawLine(0, FLOOR_Y, WINDOW_SIZE, FLOOR_Y); g.fillOval(ballX, FLOOR_Y-BALL_SIZE, BALL_SIZE, BALL_SIZE); } }