title: What should I use to display game graphics?
body: <p>I have a system in place for a game yet I don't know what I should use to display it. I am making a vertical shooter game and I have written the methods for all the classes controlling enemies and players, but I have not idea how to efficiently display the game. I was thinking a Canvas, that would repaint every frame, but is that really the most efficient method?</p>
  
  <p>Important details:</p>
  
  <ol>
  <li>ideal framerate: 25fps</li>
  <li>It is a 2d game</li>
  <li>There are anywhere between 25-100 objects on the screen at any one time, all of which are moving</li>
  <li>All objects being displayed are images, all in PNG format</li>
  <li>The window is 640px by 480px</li>
  <li>Right now all the images are loaded as BufferedImage, although I could easily change this</li>
  </ol>
  
  <p><strong>7. I need a coordinate plane. This is the only fundamental part that cannot be changed without completely restructuring my code.</strong></p>
  
  <p>Most importantly the way I have everything set up, every frame all of the objects move and interact in a coordinate plane I devised (deals with collision detection and movement, no graphical component), then everything should get painted to the screen, simply by going through the ArrayLists which keep track of all moving objects and painting them one by one.</p>