import java.awt.*;

class NewTextField extends TextField
{
   Component [] rgcomp;

   public NewTextField(Component [] rgcomp)
   {
      super();

      this.rgcomp = rgcomp;

      for (int i = 0; i < rgcomp.length; i++)
         rgcomp[i].disable();
   }

   public boolean keyDown(Event e, int nKey)
   {
      boolean boolDone = true;

      int n = getText().length();

      if ((nKey > 96 && nKey < 123) ||
          (nKey > 64 && nKey < 91) ||
          (nKey > 47 && nKey < 58) ||
          (nKey == 32))
      {
         boolDone = false;
         n++;
      }
      else if (nKey == 8)
      {
         boolDone = false;
         n--;
      }

      if (n > 0)
      {
         for (int i = 0; i < rgcomp.length; i++)
            rgcomp[i].enable();
      }
      else
      {
         for (int i = 0; i < rgcomp.length; i++)
            rgcomp[i].disable();
      }

      return boolDone;
   }
}

public class EnabledPanel extends java.applet.Applet
{
   public void init()
   {
      setLayout(new BorderLayout());

      Component [] rgcomp = new Component [2];

      rgcomp[0] = new Button("Add");
      rgcomp[1] = new Button ("Delete");

      Panel p = new Panel();

      p.add(rgcomp[0]);
      p.add(rgcomp[1]);

      add("South", p);

      add("North", new NewTextField(rgcomp));
   }

   public Insets insets()
   {
      return new Insets(5, 5, 5, 5);
   }

   public static void main(String [] args)
   {
      Frame f = new Frame("Available Fonts");

      EnabledPanel ep = new EnabledPanel();

      ep.init();

      f.add("Center", ep);

      f.pack();
      f.show();
   }
}
