You can enable hardware acceleration in Java2D, but even then it is still slower (and sometimes buggy) than any Java binding for OpenGL (JOGL, LWJGL). If you want the best in the world, take a look at GLG2D, as Brandon suggested above. Keep in mind that Java2D is a high-level API, while JOGL is a low-level binding. You can use the high-level APIs by relying on these low-level OpenGL bindings like JGame, Slick, and LibGDX.
source share