JTextField

Hola, tengo un JtextField de 10 columnas y quiero que el usuario no pueda introducir más que ese numero de caracteres. ¿Cómo lo puedo hacer?
Respuesta
1
Una vez intenté responder tu pregunta pero elservidor arrojó un error, voy a intentar de nuevo:
Para hacer un campo de texto con un limite de caracteres existen varios métodos, pero este es el más eficiente:
import javax.swing.text.*;
import javax.swing.*;
public class LimitadorDeTexto implements AbstractDocument {
private int limiteDeCaracteres;
public LimitadorDeTexto(int limiteDeCaracteres ){
this.limiteDeCaracteres = limiteDeCaracteres;
}
public void insertString(int offs,
String str,
AttributeSet a)
throws BadLocationException {
if ( getLength() + str.length() > limiteDeCaracteres ){
java.awt.Toolkit.getDefaultToolkit().beep();
}
else {
super.insertString(offs,str,a);
}
}// fin metodo
}// fin clase
y listo, para usar esta clase tienes que hacer lo siguiente:
import javax.swing.*;
public class Prueba {
public static void main( String [] a ){
// este sera un limitador para 20 caracteres
LimitadorDeTexto limitador = new Limitador(20);
JTextField campo = new JTextField();
campo.setDocument(limitador);
// esto es para mostrarlo
JOptionPane.showMessageDialog(null,campo);
System.exit(0);
}
}
Y listo, pruébalo y veras que no te deja meter más de 20 caracteres.
Cualquier pregunta no dudes en consultarme.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas