RE:Limitar JTextField a 3 carcteres
Aqui tienes una clase que controla el tipo y número de carácteres que entras en un JTextField.
Para utilizarla solo tienes que usar el método setDocument de tu JTextField, de la manera siguiente.
JTextField campoTexto = new JTextField(4);
campoTexto.setDocument(new controlarLontigud(4,true));
Como puedes ver el primer parámetro de la clase indica cuantos caracteres como máximo se pueden introducir, el segundo si se admiten solo carácteres numéricos o no (esto sirve si el JTextField es un campo para poner cantidades).
En esta clase puedes poner otras cosas para mejorarla y adaptarla a tus necesidades.
Espero que te sirva.
*---------------------- INICIO ------------------------*
class controlarLontigud extends PlainDocument
{
int numChars = 0;
boolean soloNumeros = false;
public controlarLontigud(int numChars, boolean soloNumeros)
{
this.numChars = numChars;
this.soloNumeros = soloNumeros;
}
public void insertString(int offset, String str, AttributeSet a)
throws BadLocationException
{
boolean valid = true;
char[] insertChars = str.toCharArray();
if(insertChars.length + getLength() <= this.numChars)
{
if (soloNumeros)
{
for(int i=0;i<insertChars.length;i++)
{
if(!Character.isDigit(insertChars[i]))
{
valid = false;
break;
}
}
}
}
else
{
valid = false;
}
if (vali