Caros amigos,
já pesquisei bastante aqui no forum e não encontrei nada referente a restrição de caracteres dentro de um jTextField. Será que posso contar com a ajuda de vocês para solucionar o meu problema?
A idéia é, em um jTextField conter somente letras (Maiúsculas e/ou minúsculas) e números.
Motivo:
tenho um programa da empresa, onde vários operadores utilizam inserindo informações no banco de dados MySQL e alguns estão inserindo o caracter contra-barra (""), com isso os campos sucessores estão ficando em branco ou são gravados em colunas erradas. Por isso pretendo cortar o mal pela raiz.
Acho que a melhor maneira de fazer isso é criando uma subclasse de PlainDocument.
No metodo insert voce pode tratar o que o campo pode aceitar como números ou jogar as letras para UpperCase.
public class UpperCaseDocument extends PlainDocument {
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str == null) {
return;
}
char[] upper = str.toCharArray();
for (int i = 0; i < upper.length; i++) {
upper[i] = Character.toUpperCase(upper[i]);
}
super.insertString(offs, new String(upper), a);
}
}
No seu textField, voce passa Document com text.setDocument.
Acho que a melhor maneira de fazer isso é criando uma subclasse de PlainDocument.
No metodo insert voce pode tratar o que o campo pode aceitar como números ou jogar as letras para UpperCase.
public class UpperCaseDocument extends PlainDocument {
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str == null) {
return;
}
char[] upper = str.toCharArray();
for (int i = 0; i < upper.length; i++) {
upper[i] = Character.toUpperCase(upper[i]);
}
super.insertString(offs, new String(upper), a);
}
}
No seu textField, voce passa Document com text.setDocument.
[/quote]
Muito Obrigado pela ajuda…
vou tentar inserir ao programa!