// This example is from the book _Java AWT Reference_ by John Zukowski. // Written by John Zukowski. Copyright (c) 1997 O'Reilly & Associates. // You may study, use, modify, and distribute this example for any purpose. // This example is provided WITHOUT WARRANTY either expressed or import java.awt.*; public class SizedTextField extends TextField { private int size; // size = 0 is unlimited public SizedTextField () { super (""); this.size = 0; } public SizedTextField (int columns) { super (columns); this.size = 0; } public SizedTextField (int columns, int size) { super (columns); this.size = Math.max (0, size); } public SizedTextField (String text) { super (text); this.size = 0; } public SizedTextField (String text, int columns) { super (text, columns); this.size = 0; } public SizedTextField (String text, int columns, int size) { super (text, columns); this.size = Math.max (0, size); } public boolean keyDown (Event e, int key) { if ((e.id == Event.KEY_PRESS) && (this.size > 0) && (((TextField)(e.target)).getText ().length () >= this.size)) { // Check for backspace / delete / tab -- let these pass through if ((key == 127) || (key == 8) || (key == 9)) { return false; } return true; } return false; } protected String paramString () { String str = super.paramString (); if (size != 0) { str += ",size=" + size; } return str; } }