which is the most efficient and most flexible way to draw 2-dimensional graphics in a Java program? Is BufferStrategy really so much faster than BufferedImage? Some people recommend to use OpenGL for 2D graphics, but I don't know if that is a good approach. Can BufferStrategy be used in a Swing UI environment or could that cause problems?

Thanks for any answer :-)