Boa tarde a todos, estou quebrando um pouco a cabeça aqui
necessito que um textField de minha aplicação aceite apenas letras e underline
caso a letra seja minuscula seja transformada em maiuscula.
alguem teria alguma ideia?
Vlw.
Boa tarde a todos, estou quebrando um pouco a cabeça aqui
necessito que um textField de minha aplicação aceite apenas letras e underline
caso a letra seja minuscula seja transformada em maiuscula.
alguem teria alguma ideia?
Vlw.
Talvez haja um jeito mais simples, mas assim funciona:
public class MeuFormatter extends MaskFormatter
{
public MeuFormatter() throws ParseException
{
setValidCharacters("AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz_");
setAllowsInvalid(false);
}
}
daí ao invés de usar um JTextField use um JFormattedTextField:
JFormattedTextField tf = new JFormattedTextField(new MeuFormatter());
outra alternativa é voce utilizar a classe PlainDocument
crie a classe
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
public class ControlarEntradaTexto extends PlainDocument
{
@Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
{
if(Character.isLetter(str.charAt(0)) || str.esquals("_")
super.insertString(offs, str.toUpperCase(), a);
}
}
depois no seu JTextField voce seta
myJTextField.setDocument(new ControlarEntradaTexto());
usar RegEx (expressões regulares) pode ser uma boa saída
Primeiramente desculpem a demora para responder.
E bom muito obrigado Mephy, manolimars, mrrbigu
irei estudar as três maneiras e ver qual delas se encaixa melhor ao meu problema.
abraços.