Java - colocar un maximo de caracteres a un jtextfield?

   
Vista:

colocar un maximo de caracteres a un jtextfield?

Publicado por Eduarod S (15 intervenciones) el 03/11/2008 21:27:30
alguien sabe como colocar un maximo de caracteres a un jtextfield y un jTextArea

algo asi como la proipedad maxlength en html .. si existe un evento igual en java????

Atte
Eduardo S
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:colocar un maximo de caracteres a un jtextfield

Publicado por Jesus Eduardo (5 intervenciones) el 04/11/2008 06:19:41
//espero que te sirva esto... aunque lo poderoso que es Java creo que debe tener
//algo que lo resuelva en 2 lineas...! nos vemos

package EjemploMaxLengthJava;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class NewClass extends JFrame {

JFrame refVentana;
public NewClass(String titulo) {

super(titulo);
refVentana =this;
setVisible(true);
setSize(new Dimension(300,200));
getContentPane().setLayout(new FlowLayout());




//le colocamos un tamaño de 10 caracteres 'eso es lo que tendra como maximo'
JTextField campo = new JTextField(10);

//agregamos el campo al JFrame
getContentPane().add(campo);


//al campo le agregamos un evento del tipo KeyEvent, cada vez que se presione y suelte
//una tecla se activara el evento, que verificara si la cantidad de caracteres en el campo
//es mayor,
campo.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{

JTextField campo = (JTextField)e.getSource();
if(campo.getText().length()>campo.getColumns()-1)
{

if(e.getKeyCode()!=e.VK_BACK_SPACE)
{
getToolkit().beep();//sonido
JOptionPane.showMessageDialog(refVentana, "Se paso del limite...de :"+campo.getColumns());//alerta
campo.setText(campo.getText().substring(0,campo.getColumns()));//lo dejamos en 10 caracteres
}

}

}
});


addWindowListener(new WindowAdapter() {

@Override
public void windowClosing(WindowEvent e) {
dispose();
}
});

}






public static void main(String[] args) {

new NewClass("Ejemplo Limitar Nro caracteres en JTextField");

}







}
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:colocar un maximo de caracteres a un jtextfield

Publicado por Luis Castro (80 intervenciones) el 08/11/2008 02:39:44
hola para eso esta la clase InputVerifier tambien esta no deja pasar el foco hasta que esta correcto el valor que usas

a esta clase le puedes poner expresiones regulares, tambiense puede usar para editor de celdas

InputVerifier verifier = new InputVerifier() {
public boolean verify(JComponent input) {
pirvate JTextField source = (JTextField ) input;
String text = source.getText();

if (text.length() > 10) {
JOptionPane.showMessageDialog(source, "No se puede pasar de 10 caracteres.", "Error Dialog",
JOptionPane.ERROR_MESSAGE);
return false;
} else {
return true;
}
}
};
nombre.setInputVerifier(verifier);

Observacion como es un JTextField source le puedes usar los metodo de la calse como son setForeground

Cambiarlo de color si falla, recartalo y ponerlo de nuevo etc etc..

y puedes hacer tu propia clase de esto

pubic class verificadorLenth extends InputVerifier{
private int =d
verificadorLenth(int d)
{
this.d=d;
}
public boolean verify(JComponent input) {
pirvate JTextField source = (JTextField ) input;
String text = source.getText();

if (text.length() > d) {
JOptionPane.showMessageDialog(source, "No se puede pasar de 10 caracteres.", "Error Dialog",
JOptionPane.ERROR_MESSAGE);
return false;
} else {
return true;
}
}
};

}
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

colocar un maximo de caracteres a un jtextfield?

Publicado por marcos medina (6 intervenciones) el 12/01/2016 20:44:28
hola, sencillo debes usar el evento Keytyped del jTextField1, ejemplo
1
2
3
4
5
6
7
8
....
Private void jTextField1KeyTyped....
{
  if(jTextField1.getText().Length()== 20)
    {
       evt.Consume();
 
    }

listo!!

en este caso solo se aceptaran 20 caracteres como maximo dentro del jTextField1... :)
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