Uppercase [RESOLVIDO]

Boa tarde, estou com dificuldades para fazer com que o texto digitado em um textfield seja alterado automaticamente para maiusculo, caso tenha sido digitado em minusculo. Gostaria de saber qual a forma mais prática de fazer isso, se é com a utilização do onkeypress ou não…é uma exigência do cliente que no formulário de cadastro o campo “UF” seja automaticamente transformado em maiusculo.
Uma outra dúvida, o dado digitado e modificado automaticamente será salvo em minusculo ou maiusculo?

Obrigado desde já pela ajuda.

Você pode usar o Evento Focus Lost

Oi,

1- Utilize (extends) a classe PlainDocument
2- Sobrescreva (@override) o método insertString
3- Retorne sempre super.insertString(an_length, as_character.toUpperCase(), ao_attribute);

Tchauzin!

Tenta da seguinte forma
você pode pegar a String e tratar depois

String text="esse um texto";
String maiscula=text.toLowerCase();
String minus=text.toUpperCase();
1 curtida

Ai tu usa o comando

         SeuCampodeTextp.getText().toUpperCase();

Oi,

Eu acho que ele quer que ao pressionar uma tecla no textfield a mesma se torna Maiúscula automaticamente em tempo de execução.

Tchauzin!

Pega a String com um keyReleased e faz um toUpperCase e seta o textfieldnovamente…
tipo:

text.setText(text.getText().toUpperCase());

Acho que a solução proposta pela lina é a mais completa. Usar eventos pra fazer isso só vai surtir efeito quando o evento for disparado. No focus lost, só será possível visualizar as letras maiúsculas assim que sair do campo, com key released, se o usuário copiar um texto e colar com o mouse não haverá a conversão para letras maiúsculas.

Oi,

Exatamente. Simplificando para a pessoa que fez a pergunta, algo como:

// Cria uma innerclass mesmo.
private class UpperCaseDocument extends	PlainDocument 
{
     @Override
     public void insertString(int an_length, String as_character, AttributeSet ao_attribute) 
     throws BadLocationException {

          super.insertString(an_length, as_character.toUpperCase(), ao_attribute);
   }
}

// chame assim:
textfield.setDocument(new UpperCaseDocument());

Tchauzin!

Estava pesquisando e achei uma outra opção para resolver este problema que seria usando um uppercase plugin…

o que vcs acham?

Oi,

Aaaa…
É uma aplicação WEB ?

Tchauzin!

[quote=lina]Oi,

Aaaa…
É uma aplicação WEB ?

Tchauzin![/quote]
Exatamente…desculpe não ter mencionado anteriormente

Bom dia, obrigado a todos pela atenção…resolvi o problema da seguinte forma:

onblur=“this.value=this.value.toUpperCase()”

Pro texto não ficar minúsculo enquanto o usuário digita, coloque na CSS:

.maiusculo{text-transform: uppercase;}

isso não altera o valor do campo (quando chegar no servidor vai estar minúsculo) mas dá o efeito visual…

[obs:] Eu também tinha pensado que era pra desktop…

Ok, imaginei que nestes casos a cópia só poderia ser feita com a utilização do crtl+c com o crtl+v…asssim sendo o evento de teclado iria ser disparado de qualquer maneira…
Valeu aí pela correção, realmente a solução proposta pela Lina é mais completa!