I prefer using JFormattedTextField.
Hopefully following can give u some hints.
----------------------------------------
import javax.swing.JFormattedTextField
import javax.swing.text.DefaultFormatterFactory;
import java.text.NumberFormat;
import javax.swing.text.NumberFormatter;
...
NumberFormat format = NumberFormat.getNumberInstance();
format.setMaximumIntegerDigits(3);
NumberFormatter formatter = new NumberFormatter(format);
formatter.setAllowsInvalid(false);
formatter.setMinimum(new Integer(0));
formatter.setMaximum(new Integer(255));
...
------------------------------------------
If you need more flexible&custmozied requirements, you probably need to overwrite some functions of "Formatter" or create you owner "Format" class.
here is the official tutorial:
http://java.sun.com/docs/books/tutorial/uiswing/components/formattedtextfield.html