I did some flashlight effect in J2D for my unfinished entry at LD48.
In pseudo code:
define cone of light;
use cone for clipping;
draw scene;
define gradient (transparente to black) in the direction of light
paint the cone with the gradient;
The result is something like this image:
http://www.demegames.cl/images/screen1.png
Then I added the same logic for a square around the player, and some options to control the ligh focus(distance v/s spread) getting this:
http://www.demegames.cl/images/screen2.jpg
http://www.demegames.cl/images/screen3.jpg
Don’t know how is the performace in old machines or old JVM, but in my PC (athlon 64 3000Mhz, 1GB DDR2, nVidia7600GS 256 MB, jdk1.6_XX) it works fine.