Ah, the bouncing balls app. A program Paul had me write in the early days, and then in turn that I asked Dave to write a year later, and now 7 years after that, you get to take a wack at this timeless classic (hmmm, wacking at balls?). This assignment covers GUI, Threads, animation, drawing, creating your own classes, and events; it's kind of a non-interactive game. Just in time for your solo weekend too:
Write a program that displays a frame. The top part of the frame should have a black background, this is the ball cage. The bottom of the frame contains a button labeled "Add Ball". When pressed, it will add a "ball" (a circle) to the cage that will head off in some direction and "bounce" off the borders of the cage indefinitely. Subsequent presses of the button will continue to add balls.
Notes:
1) It's up to you of course, but now is a good time to start doing some Object Oriented design. Consider writing a Ball class. You could even go crazy and write a BallCage class too...
2)Some extra options: make each ball a random color, and give it an initial random direction and velocity (a bunch of balls all the same color going the same direction and speed isn't very interesting).
3) Don't worry about collision detection between balls -- just the walls.
This will be your most ambitious effort yet. But for your reference, I wrote this from stratch in real-time, in front of a high school class in a 50 minute class period.