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(); } }