long currentTime = System.currentTimeMillis();
long currentTime;
        public void run() {            long lastTime = System.currentTimeMillis();            long currentTime = System.currentTimeMillis();            while (!finished) {                try {                    Thread.sleep(20);                } catch (InterruptedException ex) {                    // duh?                }                if (finished) {                    break;                }                if (!isShowing()) {                    currentTime = System.currentTimeMillis();                    lastTime = currentTime;                    continue;                }                currentTime = System.currentTimeMillis();                boolean redraw = false;                for (int i = 0; i < displayables.size(); i++) {                    Displayable disp = (Displayable) displayables.elementAt(i);                    if (!disp.isSliding()) {                        disp.setIdleTime(currentTime - lastTime, true);                    } else {                        redraw = redraw || disp.slide();                    }                }                if (backSize != null) {                    redraw = redraw || doMoveUnits(currentTime - lastTime);                    redraw = redraw || doScroll();                    checkTooltip();                } else {                    repaint(100);                }                if (redraw) {                    repaint();                }                lastTime = currentTime;            }        }