Após procurar pela net uma solução para permitir ao usuário inserir apenas letras em maiusculas em JTextFiled (e outros componentes mais), juntei tudo que encontrei e elaborei a solução abaixo:
Basta copiar as três últimas linhas do código e cologar no envento KeyReleased do componente.
Não precisa alterar nada, caso o componente seja um JTextField. Se por exemplo for um JTextPane, mude o tipo do objeto na segunda linha.
Eu tentei usar o mascaramento, mas tive problemas com a tecla de espaço pois ao colocar no campo o mascaramento para letras maiusculas ele não aceitava o espaço.
te juro vini quando conheci esse metodo chorei de emocao pensei q nao era possivel, modifiquei ela pra aceitar apenas letras e numeros, nada de caracteres
public class UpperCaseDocument extends PlainDocument { @Override
public void insertString(int offset, String str, AttributeSet attr)
throws BadLocationException {
super.insertString(offset, str.toUpperCase(), attr);
}
}
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
public class UpperCaseDocument extends PlainDocument { @Override
public void insertString(int offset, String str, AttributeSet attr)
throws BadLocationException {
super.insertString(offset, str.toUpperCase(), attr);
}
} [/code]
Depois é só fazer:
view plaincopy to clipboardprint?
seuTextField.setDocument(new UpperCaseDocument());
seuTextField.setDocument(new UpperCaseDocument());
Para um JTextPane, talvez você tenha que fazer algo similar, mas sobrescrevendo a classe HTMLDocument.
Ajudando a controlar digitos e valores em um JTextField =)
Tchauzin![/quote]
Nao voce nao entendeu, ja conhecia essa classe a muito tempo, digo a primeira vez que vi ja ta fazendo um tempinho acho q foi ate o vini que postou nao me lembro realmente muito boa e da pra ter uma nocao do que o java e capaz… vlw