import java.applet.Applet;
import java.awt.*;

// This appears in Core Web Programming from
// Prentice Hall Publishers, and may be freely used
// or adapted. 1997 Marty Hall, hall@apl.jhu.edu.

/** Lets the user enter the name of <B>any</B>
 *  good programming language. Or does it?
 */

public class JavaTextField extends Applet {
  private TextField langField;
  private String[] substrings =
    { "", "J", "Ja", "Jav", "Java" };

  public void init() {
    setFont(new Font("TimesRoman", Font.BOLD, 14));
    setLayout(new GridLayout(2, 1));
    add(new Label("Enter a Good Programming Language",
                  Label.CENTER));
    langField = new TextField();
    Font langFont = new Font("Helvetica", Font.BOLD, 18);
    langField.setFont(langFont);
    add(langField);
  }

  /** Monitor/correct spelling as user types */
  
  public boolean keyUp(Event event, int key) {
    if (event.target == langField) {
      setLanguage();
      return(true);
    } else
      return(false);
  }

  // "Correct" the user's spelling if they've
  // made a typo.
  
  private void setLanguage() {
    int length = langField.getText().length();
    if (length <= 4)
      langField.setText(substrings[length]);
    else
      langField.setText("Java");
  }

  /** When they hit RETURN, fill in the right answer. */
  
  public boolean action(Event event, Object object) {
    if (event.target == langField) {
      langField.setText("Java");
      return(true);
    } else
      return(false);
  }

  /** Subliminal advertising! Give the user a hint. */
  
  public boolean gotFocus(Event event, Object ignore) {
    if (event.target == langField) {
      String text = langField.getText();
      for(int i=0; i<5; i++) {
        langField.setText("Hint: Java");
        langField.setText(text);
      }
      return(true);
    } else
      return(false);
  }
}

