/* ArchText applet: multi-coloured text on a white background */ /* Mike Cowlishaw April 1996, December 1996 */ options binary class ArchText extends Applet implements Runnable text ="NetRexx" /* default text */ tick =0 /* display counter */ timer =Thread null /* timer thread */ shadow=Image /* shadow image */ draw =Graphics /* where we can draw */ method init s=getParameter("text") /* get any provided text */ if s\=null then text=s shadow=createImage(getSize.width, getSize.height) /* image */ draw=shadow.getGraphics draw.setColor(Color.white) /* background */ draw.fillRect(0, 0, getSize.width, getSize.height) /* .. */ draw.setFont(Font("TimesRoman", Font.BOLD, 30)) /* font */ method start if timer=null then timer=Thread(this) /* new thread */ timer.setPriority(Thread.MAX_PRIORITY) /* time matters */ timer.start /* start the thread */ method stop if timer=null then return /* have no thread */ timer.stop /* else stop it */ timer=null /* .. and discard */ method run /* this runs as thread */ loop while timer\=null tick=tick+1 /* next update */ hue=((tick+133)//191)/191 draw.setColor(Color.getHSBColor(hue, 1, 0.7)) draw.drawString(text, 0, 30) this.repaint /* .. and redraw */ Thread.sleep(119) /* wait awhile */ catch InterruptedException end timer=null /* discard */ method update(g=Graphics) /* override Applet's update */ paint(g) /* method to avoid flicker */ method paint(g=Graphics) g.drawImage(shadow, 0, 0, null)