Java - Limitar JTextField a 3 carcteres

 
Vista:

Limitar JTextField a 3 carcteres

Publicado por Javier (2 intervenciones) el 29/11/2001 12:11:16
Hola

Como podria hacer que en un jtextfield solo pudirera escribir 3 caracteres

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Limitar JTextField a 3 carcteres

Publicado por Angel (2 intervenciones) el 29/11/2001 13:23:28
Hola:
Debes de declarar en el constructor de JTextField el numero maximo de columnas.
ej: JTextField j=new JTextField(3);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

La clase al completo

Publicado por Antonio (51 intervenciones) el 30/11/2001 04:54:10
class controlarLontigud extends PlainDocument
{
int numChars = 0;
boolean nomesNumeros = false;
public controlarLontigud(int numChars, boolean nomesNumeros)
{
this.numChars = numChars;
this.nomesNumeros = nomesNumeros;
}

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 (nomesNumeros)
{
for(int i=0;i<insertChars.length;i++)
{
if(!Character.isDigit(insertChars[i]))
{
valid = false;
break;
}
}
}
}
else
{
valid = false;
}

if (valid)
{
super.insertString(offset, str, a);
}
else
{
getToolkit().beep();
}
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar JTextField a 3 carcteres

Publicado por Antonio (51 intervenciones) el 30/11/2001 04:50:55
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar JTextField a 3 carcteres

Publicado por wilder villavicenciom (4 intervenciones) el 05/07/2011 23:49:38
bueno mucho codigo ponen arriba

implementa este codigo :

public static void FNumKeyTyped(JTextField txt,KeyEvent evt,int pValor)
{
if (txt.getText().length()>=pValor)
{
evt.consume();
}
}

es rutilizable y lo puedes llamr de donde sea , solo tienes que mandar como parametros los siguiente:

txt = es el nombre de la caja de texto.
evt= es el evento que produce cada caja , x defecto es el mismo nombre.
pValor= es la cantidad de letras que permite
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Limitar JTextField a 3 carcteres

Publicado por VICTOR (2 intervenciones) el 31/12/2011 09:08:18
para wilder,no entiendo "evt= es el evento que produce cada caja , x defecto es el mismo nombre."
He intentado pasar como parametro todo tipo de cosas y no lo consigo,perdona la ignorancia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar JTextField a 3 carcteres

Publicado por victor (2 intervenciones) el 02/01/2012 19:12:10
Ya!! Funciona muy bien,En netbeans ,con el evento Keytyped y llamando desde alli a FNumKeyTiped.
GraciasWilder.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar JTextField a 3 carcteres

Publicado por Luis Hurtado (1 intervención) el 19/03/2012 06:36:23
Gracias hermano, soy novato en esto y lo unico que hice fue generar el evento Keytyped y copiar esto dentro:

if (txt.getText().length()>=pValor){
evt.consume();
}

y listo !! Gracias !! Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar JTextField a 3 carcteres

Publicado por userquin (1 intervención) el 18/04/2012 12:13:13
Esa solución no funciona si utilizas copy/paste (keyTyped)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar JTextField a 3 carcteres

Publicado por teco-master (1 intervención) el 18/05/2012 05:16:39
Gracias colega, tu solución fue la mas facil de implementar que e encontrado en la red. NetBeans nos ayuda mucho pero a veces nos pone retos un tanto inesperados.

Saludos a todos compañeros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar JTextField a 3 carcteres

Publicado por Lenning Silva (1 intervención) el 25/04/2016 16:58:42
DE ESA MANERA TAMBIEN A MI ME SALIO PARA LIMITAR CIERTA CANTIDAD DE CARACTERES
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Limitar JTextField a 3 carcteres

Publicado por El buen Fide (1 intervención) el 05/10/2016 20:16:19
Efectivamente esta es la solución en NetBeans.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar