Thanks for the quick reply! I definitely appreciate it.

I agree 100% with your advice about using one thread instead of multiple, unfortunately the assignment specifically dictates that the fish must each be their own thread.

Your advice of extending JPanel instead is also good advice which I will implement in my reworking of the program.

However, I am slightly confused by your discussion of the setBackground() method. It seems that when the repaint() method is called it should be drawn, but is not. My understanding of JComponent must surely be flawed. Would you mind elaborating for clarity?