rendered paste bodypackage stein;import java.awt.Color;import java.awt.Graphics;import java.awt.GraphicsConfiguration;import java.awt.GraphicsDevice;import java.awt.GraphicsEnvironment;import java.awt.image.BufferStrategy;import java.text.Format;import java.util.Formatter;import javax.swing.JFrame;/** * First try at gfx test. * * @author stein * */public class TestOne { GraphicsEnvironment gfxEnv; GraphicsDevice gfxDev; GraphicsConfiguration gfxConf; JFrame frame; public void go() { gfxEnv = GraphicsEnvironment.getLocalGraphicsEnvironment(); gfxDev = gfxEnv.getDefaultScreenDevice(); gfxConf = gfxDev.getDefaultConfiguration(); frame = new JFrame(gfxConf); // frame.setUndecorated(true); frame.setIgnoreRepaint(true); frame.setSize(300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); // gfxDev.setFullScreenWindow(frame); FIXME on or off, as needed ... frame.createBufferStrategy(2); BufferStrategy bs = frame.getBufferStrategy(); boolean done = false; int frames = 0; long lastTime = System.currentTimeMillis(); String fpsString = "FPS: ???"; while (!done) { // render loop Graphics g = bs.getDrawGraphics(); try { renderPicture(g); g.drawString(fpsString, 10, 40); long thisTime = System.currentTimeMillis(); if (thisTime - lastTime >= 500) { Formatter f = new Formatter(); double fps = (frames * 1000.0) / (thisTime - lastTime); lastTime = thisTime; frames=0; f.format("FPS: %6.1f", fps); fpsString=f.toString(); //System.out.println("fsp is "+fps+"|"+f.toString()); } } finally { g.dispose(); frames++; } g.dispose(); bs.show();// try {// Thread.sleep(20);// } catch (InterruptedException e) {// } } frame.setVisible(false); frame.dispose(); } double T = System.currentTimeMillis(); void renderPicture(Graphics g) { // draw something double t = System.currentTimeMillis(); double arc = t/1000.0/10.0; arc = arc-Math.floor(arc); System.out.printf("arc : %5.3f, %5.1f deg\n",arc,arc*360); double minute = (long)((t-T) / 1000.0 / 60.0); long seconds = (long)((t-T) / 1000.0); System.out.println("MS: "+minute+":"+seconds); g.setColor(Color.WHITE); g.fillRect(0, 0, frame.getWidth(), frame.getHeight()); g.setColor(Color.BLACK); g.drawArc(100, 80, 100, 100, (int)(360*arc), 10); } public static void main(String[] args) { // TODO Auto-generated method stub new TestOne().go(); }}