jtextfield

¿Cómo puedo limitar el numero de caracteres que se van a introducir en un jtextfield en una aplicación java? (Por ejemplo, al pedir un nombre, que no admita más de 25 caracteres) Gracias por adelantado

1 respuesta

1
Respuesta de
Inicialmente java no impone ninguna limitación de tamaño en el JTextField, lo que is puedes hacer es comprobar el tamaño del texto introducido cuando el usuario termine de introducirlo. Para ello en la clase JTextField existe un método que se llama setInputVerifier al que se le pasa como parámetro un objeto de una clase que implemente el interfaz InputVerifier. Cada vez que el componente pierde el foco se llama al método verify del objeto que has pasado como parámetro, que es el encargado de comprobar que la entrada en correcta. Lo que tienes que hacer es una clase que implemente el interfaz InputVerifier e implementar el método verify de forma que realize la comprobación de tamaño.
Te mando un ejemplo de una clase InputVerifier que testea que el valor del campo sea de tipo float.
En tu caso lo único que tendrás que hacer es modificar la clase para que cuando obtiene el texto del campo compruebe su longitud y muestre un mesaje de error en el caso que sea necesario.
public class FloatVerifier extends InputVerifier
{
public boolean verify(JComponent comp)
{
String txt;
float valor;
txt=((JTextField)comp).getText();
if(!txt.equals(""))
{
try
{
valor=Float.parseFloat(txt);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"No se permiten caracteres Alfanuméricos","Formato Incorrecto",JOptionPane.ERROR_MESSAGE);
((JTextField)comp).selectAll();
return false;
}
if(valor<=0)
{
JOptionPane.showMessageDialog(null,"El valor deve de ser positivo","Valor Incorrecto",JOptionPane.ERROR_MESSAGE);
((JTextField)comp).selectAll();
return false;
}
else
{
return true;
}
}
else
{
return true;
}
}
}
Espero que te sea útil. Un saludo
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje