animation/swing/timer question
I'm working on an Applet that bounces a ball around in a 3D room - kind of like a racketball court. It works like this: I have a JApplet called Game, and it contains a JPanel (called Court). In Court() I create two objects: Ball and Walls. Ball and Walls are plain classes that contain methods (Ball has drawBall(Graphics g) and Walls has drawWalls(Graphics g)) which take in a Graphics object (from Court), then use it to paint themselves.
First question: Is there a better way to get the ball and walls to paint themselves, rather than taking in a graphics object from Court?
The drawBall(Graphics g) method uses g.FillOval() and makes a circle, the Walls does something similar to draw a simple 3D room with its drawWalls(Graphics g) method. In Court's paintComponent method, a call is made to drawBall(g) and drawWalls(g), passing its own graphics component. I don't know if this is the best way to do it, but it's how I got it to work.
The Ball is set up with six individual javax.swing.Timers (away, toward, up, down, left, and right) that are each set to fire every 10 milliseconds, whenever they are running. Timers for opposite directions don't run together (away and towards don't run at the same time, nor do left/right, or up/down). Each timer, when fired, updates either the position (up,down,left,right) or its size(away,toward), and they each contain functions to decide where the "wall" is.
Court is set up with a Timer as well, and that timer fires as fast as possible and calls Court.repaint().
I have to say, I'm pretty proud of this, because it works...
BUT...
It's slow, because the Timers don't fire as fast as they should. Does anyone know of a way I can make this more efficient? I have read a bit about threading, but I don't know how to go from the Timers I have to threads, or even if that is what I should do. I hope this makes some sense. Any advice greatly appreciated. Thank you.

