Boa tarde, tenho uma classe que faz um extends de um JTextField, estou tentando implementar uma regra com o PlainDocument com o objetivo de deixar a primeira letra de cada frase em maiúscula. Assim toda vez em que instanciar um atributo do tipo dessa classe ele já venha com essa regra. O problema é que não está ocorrendo a alteração, alguém sabe me dizer onde estou errando? Obrigado!
class MeuDocument extends PlainDocument {
String str = null;
public String insertString() {
char[] letras = str.toCharArray();
for (int i = 0; i < letras.length; ++i) {
if (i == 0 || !Character.isLetterOrDigit (letras[i-1])) {
letras[i] = Character.toUpperCase (letras[i]);
}
}
return new String (letras);
}
}
Boa tarde pessoal, a regra está quase funcionando acontece que da forma que está ele está transformando a frase toda em maiúsculo e ao contrário, estranho isso, quando eu começo a digitar no campo sai o seguinte: digito JAVA, e sai AVAJ.
Valeu Diego, acredito que um laço de repetição para verificar onde há espaço deve resolver para o restante da frase.
Encontrei um conteúdo sobre o WordUtils.capitalizeFully, onde: “Converte todas as palavras em branco separados em um String em palavras em maiúsculas, isto é, cada palavra é composta de um personagem titlecase e depois uma série de caracteres minúsculos. Espaço em branco é definida por Character.isWhitespace (char). Capitalização usa o caso de título unicode, normalmente equivalente a maiúsculas.”
[quote=CarlosAlexandre]Valeu Diego, acredito que um laço de repetição para verificar onde há espaço deve resolver para o restante da frase.
Encontrei um conteúdo sobre o WordUtils.capitalizeFully, onde: “Converte todas as palavras em branco separados em um String em palavras em maiúsculas, isto é, cada palavra é composta de um personagem titlecase e depois uma série de caracteres minúsculos. Espaço em branco é definida por Character.isWhitespace (char). Capitalização usa o caso de título unicode, normalmente equivalente a maiúsculas.”