[Java]Formatação de Campo com Plain Document

Olá programadores, eu estou com uma duvida que eu acredito ser bem simples, eu criei uma classe para formatar e permitir somente letras maiúsculas, mas ele ta aceitando os caracteres só quando eu ativo o CapsLock ou digito segurando o Shift, alguém sabe como que de maneira automática ele converta as teclas para maiúsculas???

    public class teclasPermitidas extends PlainDocument {
        @Override
        public void insertString(int offset, String str, javax.swing.text.AttributeSet attr )
        throws BadLocationException{
            super.insertString(offset, str.replaceAll("[^A-Z]",""), attr);
        }
        public void replace(int offset, String str, javax.swing.text.AttributeSet attr )
        throws BadLocationException{
            super.insertString(offset, str.replaceAll("[^A-Z]",""), attr);
        }
    }

A inserção do documento no jTextField estou fazendo assim:

public void formatarTextFields(){
        txtNomeProduto.setDocument(new teclasPermitidas());
    }

Eu criei um métodos porque serão vários campos