JTextField y tamaño de estos

MIYARA
13 de Mayo del 2002
Hola buenas tardes

Tengo un problemilla, estoy realizando una interfaz gráfica. Tengo que controlar el tamaño de los campos que me introducen. Lo puedo hacer al final, pero me molaria que cuando el campo tuviese un tamaño determinado no me dejara escribir mas en pantalla. Me han dicho que se puede hacer controlando los KeyEvent, pero no tengo mucha idea de como hacerlo. Me podriais indicar como hacer y algun ejemplillo.

Muchas gracias

Luismahou
13 de Mayo del 2002
Hola!

Para resolver tu problema puedes hacer 3 cosas:
- Poner un escuchador KeyListener a tu textfield:

myTextField.addKeyListener( new KeyAdapter() {
public void keyPressed(KeyEvent e) {
String text = myTextField.getText();
if (text.length() > maxLength) {
text = text.subString(0, maxLength);
myTextField.setText(text);
}
}
}
- Implementar una clase que herede de JTextField y sobreescribir su método processKeyEvent() o processComponentKeyEvent() (uno de los dos, no estoy seguro de cual). Este método se ejecuta cuando el propio JTextField detecta un KeyEvent y con este método lo procesa. Lo que tendrías que hacer es comparar el tamaño del texto ya escrito con el máximo si es menor al maxLength llamar al super.processKeyEvent() para que procese el evento y escriba la letra, si es igual a maxLength no hace nada.
- Ponerle un Document al textField. Esto es un poco más complicado de explicar, así que te paso un link:
http://java.sun.com/docs/books/tutorial/uiswing/events/documentlistener.html

Luismahou