[RESOLVIDO]JTextField setando para aceitar só letras e underline

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.