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?
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!
otaviojava1 like
Tenta da seguinte forma
você pode pegar a String e tratar depois
Stringtext="esse um texto";Stringmaiscula=text.toLowerCase();Stringminus=text.toUpperCase();
victorgilc
Ai tu usa o comando
SeuCampodeTextp.getText().toUpperCase();
lina
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!
igor_jua
Pega a String com um keyReleased e faz um toUpperCase e seta o textfieldnovamente…
tipo:
text.setText(text.getText().toUpperCase());
Eric_Yuzo
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.
lina
Oi,
Exatamente. Simplificando para a pessoa que fez a pergunta, algo como:
// Cria uma innerclass mesmo.privateclassUpperCaseDocumentextendsPlainDocument{@OverridepublicvoidinsertString(intan_length,Stringas_character,AttributeSetao_attribute)throwsBadLocationException{super.insertString(an_length,as_character.toUpperCase(),ao_attribute);}}// chame assim:textfield.setDocument(newUpperCaseDocument());
Tchauzin!
Y
yurimagno
Estava pesquisando e achei uma outra opção para resolver este problema que seria usando um uppercase plugin…
o que vcs acham?
lina
Oi,
Aaaa…
É uma aplicação WEB ?
Tchauzin!
Y
yurimagno
lina:
Oi,
Aaaa…
É uma aplicação WEB ?
Tchauzin!
Exatamente…desculpe não ter mencionado anteriormente
Y
yurimagno
Bom dia, obrigado a todos pela atenção…resolvi o problema da seguinte forma:
onblur=“this.value=this.value.toUpperCase()”
drigo.angelo
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…
igor_jua
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!