/*
 * "Grundkurs Programmieren in Java - Band 2 (2. Auflage, 2006)I"
 * 2003-2006, Carl Hanser Verlag
 * Loesungsvorschlag zu Aufgabe 12.3 (Version 2.0)
 * (c) 2003-2006 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger
 *
 */

import javax.swing.*;
import java.awt.*;

public class ColorRunButton extends JButton implements Runnable {
  
  private boolean running        = false;       // Thread läuft zu Beginn nicht
  private boolean zeigtBuchstabe = true;        // Anzeige zeigt zu Beginn Buchstaben
  
  
  /**
   * setzt Hintergrund auf weiss, setzt Schrift auf Arial (50 Punkt, fett)
   *
   *
   */
  public ColorRunButton() {
    setBackground( Color.white );
    setFont( new Font( "Courier",Font.BOLD,50 ) );
    setText( " " );
  }
  
  public void change(boolean zeigtBuchstabe) {
    this.zeigtBuchstabe = zeigtBuchstabe;
    if (running)
      running = false;
    else {
      running = true;
      new Thread(this).start();
    }
  }
  
  public void run() {
    String text;
    
    while (running) {
      int zufall = (int) (10*Math.random());
      if (zeigtBuchstabe) // Buchstabe oder Ziffer?
        text = "" + (char) (65 + zufall);
      else
        text = "" + zufall;
      setText(text);
      try {
        Thread.sleep(10);
      }
      catch(InterruptedException e) {
        break;
      }
    }
  }
}

