Java 2D Trickery: Light and Shadow