Creating a spotlight

hello people!

I’m making a game resembling parappa the rapper (for those of you who remember)
so I got a dude rapping on a stage
what I wanna do is create multiple spotlights that light up the stage
the spotlights start from the top, spread their light down (in a triangle) and light up the floor with an oval
what I do is that I draw a triangle polygon that represents the light…this triangle is semi-transparent and has the “lighting the scene up” effect
I also draw a trasparent oval on the floor
code looks like



g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, intensity)); 
            Polygon p = new Polygon(); 
      //fromX and fromY are the starting point of the light 
            p.addPoint(fromX, fromY); 
  //atX and atY the center of the oval of light on the floor...radX and radY the radius 
            p.addPoint(atX - radX, atY); 
            p.addPoint(atX + radX, atY); 
            g2.setColor(col); 
            g2.fillPolygon(p); 
            g2.fillOval(atX - radX, atY - radY, radX * 2, radY * 2); 
                  //correction light 
            g2.fillArc(atX - radX, atY - radY, radX * 2, radY * 2, 0, -180); 
            g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f)); 

now the problem is that drawing the filled polygon every time is too slow (I’m using bufferStrategy, which is the fastest drawing technique I know so far)
it lowers my FPS by like 20 FPS

anyone has any alternatives to that method ?