If you are interested in an old-school answer, I tend to be very familiar with the Java Graphics API and understand how you can just draw graphics from swing components. The basics of Java Graphics are quite interesting, and the platform offers advanced graphics operations, simplifies double buffering, gradients, textures, affine transforms, image processing and (limited) sound support, floating point precision, full-screen drawings. The advantage of mastering the "relatively low" level of the API, if after that you understand much better how the advanced work on librairy is and what they have to offer.
Therefore, I would recommend building the game only from those available in the JSDK. I did this for many classic games and taught it to my students, and I think it was a good way to shape them.
If you already know a lot of the basics, then I would recommend spreading your arms to a more productive freedom or even exploring some. @Smar noted interesting.
Regards, Stéphane
Snicolas
source share