import java.util.concurrent.locks.*; import java.util.concurrent.*; isDead = false; bufferStrat = null; Main(){ frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.setSize(640,480); frame.setLocationRelativeTo(null); frame.setVisible(true); frame.createBufferStrategy(2); bufferStrat = frame.getBufferStrategy(); frame.addKeyListener(super.keyListener); return frame; } Render(){ discs = new LinkedList(); addDisc(obj){ discs.add(obj); } render(){ bufferStrat.show(); gfx = (Graphics2D)bufferStrat.getDrawGraphics(); gfx.setColor(Color.BLUE); gfx.fillRect(0,0,frame.getWidth(),frame.getHeight()); gfx.translate(frame.getWidth()/2, frame.getHeight()/2); for(d : discs){ d.draw(gfx); } gfx.dispose(); } return this; } keyListener = new KeyListener(){ keyPressed(evt){ if(evt.getKeyCode() == KeyEvent.VK_ESCAPE){ isDead = true; frame.dispose(); } } invoke(method, args){} };