Limitar JTextArea

Vayeya_bttf

Lanero Reconocido
Se unió
19 Abr 2005
Mensajes
147
hola laneros !!!!
tengo un textarea con un scrollpane pero quiero limitar el numero de caracteres introducidos como podria hacerlo????? :rolleyes: alguein tiene alguna idea?' gracias!
 

[WT]Zer0

Lanero Reconocido
Se unió
19 Jul 2004
Mensajes
802
private class LimitedStyledDocument extends DefaultStyledDocument {

int maxCharacters;

public LimitedStyledDocument(int maxChars) {
maxCharacters = maxChars;
}

public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {

if ((getLength() + str.length()) <= maxCharacters)
super.insertString(offs, str, a);
else
Toolkit.getDefaultToolkit().beep();
}
}

Luego:

LimitedStyledDocument lpd = new LimitedStyledDocument(MAX_CHARACTERS);
jtxaComm = new JTextPane();
jtxaComm.setDocument(lpd);
 

Vayeya_bttf

Lanero Reconocido
Se unió
19 Abr 2005
Mensajes
147
[WT]Zer0 dijo:
private class LimitedStyledDocument extends DefaultStyledDocument {

int maxCharacters;

public LimitedStyledDocument(int maxChars) {
maxCharacters = maxChars;
}

public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {

if ((getLength() + str.length()) <= maxCharacters)
super.insertString(offs, str, a);
else
Toolkit.getDefaultToolkit().beep();
}
}

Luego:

LimitedStyledDocument lpd = new LimitedStyledDocument(MAX_CHARACTERS);
jtxaComm = new JTextPane();
jtxaComm.setDocument(lpd);
muchas gracias '[WT]Zer0'] si hubiera creado yo la clase hubiera salido mucho mas grande gracias!!!!
 

NSlaver

Jack of all trades
Se unió
16 Abr 2002
Mensajes
3,673
Cualquier validacion y cambio al string en :
PHP:
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if(...............Validaciones...............){
str.toUpperCase()
super.insertString(offs, str, a);
}
else
Toolkit.getDefaultToolkit().beep();

}

Al string lo podes convertir en mayusculas
 

SlashOne

Lanero Reconocido
Se unió
1 Mar 2006
Mensajes
87
Creo que lo que busca vayeya sería mas bien incluir en las validaciones (str.toUpperCase().equals(str) == true) para poder insertar el string en vez de convertirlo siempre?
 

Vayeya_bttf

Lanero Reconocido
Se unió
19 Abr 2005
Mensajes
147
Las dos soluciones serian muy correctas pero trate de las dos maneras y eso de convertirlo nada mas no me lo hacia... quien sabe en que estoy mal y en validar antes de insertarlo me funciono de maravilla graciassss a ambos!!!! :D
 

SlashOne

Lanero Reconocido
Se unió
1 Mar 2006
Mensajes
87
La primera solución no te sirve porque los String en java son inmutables, por lo tanto lo que hay que hacer es:
str = str.toUpperCase();

;)
 
Arriba