final long start = System.currentTimeMillis();
	public void update(Graphics g) {        final long start = System.currentTimeMillis();        		Dimension size = getSize();		if (bb[cb] != null && !size.equals(bb[cb].s)) {			// check for resizing, and if so, nullify current buffer			bb[cb] = null;		}		if (!imagesLoading) {			g.drawString("loading images...", 20, 50);			loadAllImages();			return;		}		if (!imagesLoaded) {			imagesLoaded = tracker.checkAll(true);			return;		}		if (!busy) {			// buffer flip			int lb = cb;			cb = (cb + 1) % NUM_BUFFERS;			if (bb[cb] == null) {				// make new buffer image				bb[cb] = new BoardBuffer(size, this);			} 			if (bb[lb] == null || bb[lb].o == null) {				redrawBuffer(bb[cb], new Point(scrollx, scrolly));			} else {				moveBuffer(lb, new Point(scrollx, scrolly));			}		} else {			if (busyCount++ > 20) {				// what's the holdup?								System.err.println("update: forced not busy.");								busy = false;			}		}		g.drawImage(bb[cb].i, 0, 0, this);                final long finish = System.currentTimeMillis();        System.out.println("BoardView1: updated screen in " + (finish - start) + " ms.");	}