import java.awt.*; import java.awt.image.*; import java.awt.event.*; public class BufferStrategyTest1 { private static Color[] colors = new Color[] { Color.red, Color.blue, Color.green, Color.yellow, Color.cyan, Color.pink, Color.magenta, Color.orange, Color.gray, Color.lightGray, Color.darkGray, Color.white, Color.black}; public BufferStrategyTest1(int bufferSize){ Frame frame = new Frame("BufferStrategy Test"); frame.setBounds(200, 200, 400, 400); frame.setLayout(null); frame.setIgnoreRepaint(true); frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); frame.setVisible(true); try{ frame.createBufferStrategy(bufferSize); BufferStrategy bufferStrategy = frame.getBufferStrategy(); while(true){ for (int i = 0; i < bufferSize; i++) { Graphics g = bufferStrategy.getDrawGraphics(); if(!bufferStrategy.contentsLost()){ g.setColor(colors[i]); g.fillRect(0, 0, 400, 400); g.setFont(new Font("Helvetica", Font.PLAIN, 64)); g.setColor(Color.black); g.drawString("Buffer No." + i, 20, 220); bufferStrategy.show(); g.dispose(); } try { Thread.sleep((int)1000L); } catch (InterruptedException ex) {} } } }catch (IllegalStateException ex){ ex.printStackTrace(); } } public static void main(String[] args){ try{ new BufferStrategyTest1(Integer.parseInt(args[0])); }catch(NumberFormatException ex){ ex.printStackTrace(); } } }