/* * File: BouncingBallUsingThreads.java * ----------------------------------- * This file implements a simple bouncing ball by creating * a RunnableBall class and executing it in its own thread. */ import acm.program.*; public class BouncingBallUsingThreads extends GraphicsProgram { /** Initialize the ball and its velocity components */ public void init() { ball = new RunnableGBall(BALL_RADIUS); ball.setEnclosureSize(getWidth(), getHeight()); ball.setVelocity(2, 1); add(ball, getWidth() / 2, getHeight() / 2); } /** Create a thread to bounce the ball */ public void run() { waitForClick(); new Thread(ball).start(); } /* Private constants */ private static final double BALL_RADIUS = 10; /* Private instance variables */ private RunnableGBall ball; /* Standard Java entry point */ /* This method can be eliminated in most Java environments */ public static void main(String[] args) { new BouncingBallUsingThreads().start(args); } }