/* * @(#)NervousText03.java 1.1 97/04/01 * * Copyright (c) 1994-1996 Sun Microsystems, Inc. All Rights Reserved. * * Sun grants you ("Licensee") a non-exclusive, royalty free, license to use, * modify and redistribute this software in source and binary code form, * provided that i) this copyright notice and license appear on all copies of * the software; and ii) Licensee does not utilize the software in a manner * which is disparaging to Sun. * * This software is provided "AS IS," without a warranty of any kind. ALL * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. * * This software is not designed or intended for use in on-line control of * aircraft, air traffic, aircraft navigation or aircraft communications; or in * the design, construction, operation or maintenance of any nuclear * facility. Licensee represents and warrants that it will not use or * redistribute the Software for such purposes. */ /* Daniel Wyszynski Center for Applied Large-Scale Computing (CALC) 04-12-95 Test of text animation. kwalrath: Changed string; added thread suspension. 5-9-95 */ package sun.beanbox.beans; import java.awt.event.*; import java.awt.Graphics; import java.awt.Font; import java.awt.*; import java.io.ObjectOutputStream; import java.io.ObjectInputStream; import java.io.IOException; public class NervousText03 extends Panel implements Runnable, MouseListener { char separated[]; String s = null; transient Thread killme = null; int i; int x_coord = 0, y_coord = 0; String num; int speed=35; int counter =0; boolean threadSuspended = false; //added by kwalrath boolean lefttoright = true; // (06/28/97 08:21:45 AM) public NervousText03() { System.err.println("ENTER---> NervousText03 constructor"); addMouseListener(this); // s = getParameter("text"); if (s == null) { //s = "HotJava"; s = "Nervous Bean"; } separated = new char [s.length()]; s.getChars(0,s.length(),separated,0); resize((s.length()+1)*15, 50); setFont(new Font("TimesRoman",Font.BOLD,36)); start(); System.err.println("EXIT----> NervousText03 constructor"); } public void setText(String newstring){ s=new String(newstring); separated= new char[s.length()]; s.getChars(0,s.length(),separated,0); } public String getText(){ return(s); } public void changeDirection(ActionEvent x) { if(lefttoright) lefttoright=false; else lefttoright=true; } private void writeObject(ObjectOutputStream s) throws IOException { s.defaultWriteObject(); if(killme == null) s.writeBoolean(false); else s.writeBoolean(true); } private void readObject(ObjectInputStream s) throws ClassNotFoundException, IOException { s.defaultReadObject(); if(s.readBoolean()==false) killme=null; else start(); } public void start() { if(killme == null) { killme = new Thread(this); killme.start(); } } // public Dimension preferredSize() { // use this for a fixed size bean public Dimension getMinimumSize() { // use this for a variable size bean return (new Dimension(150,150)); } public void stop() { killme = null; } public void run() { while (killme != null) { try {Thread.sleep(100);} catch (InterruptedException e){} repaint(); } killme = null; } public void paint(Graphics g) { for(i=0;i