home *** CD-ROM | disk | FTP | other *** search
- /* 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)
-
-