// 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;
}
}
|