Para quem necessitar, segue um modelo de JTextField para nomes, que coloca automaticamente as primeiras letras do nome em maíusculo enquanto o usuário digita, ele reconhece casos como "Pedro da Silva" e "José C. da Silva"; qualquer dúvida ou sugestões enviem comentários.
Pelo código, se eu entrar com “Jô Soares”, ele vai passar o nome para “jô Soares”, não? Assim como outros nomes, sobrenomes e apelidos com duas letras - Zé, Jó, Li (um nome chinês), Ah (um nome coreano), etc.
Realmente, é bem difícil fazer “capitalization” - o nome desse troço em inglês (deixar as palavras começando por maiúsculas, mas não todas). Eu me lembro de um livro bem antigo de C++ onde um dos exercícios era exatamente esse, e o autor ficava se estendendo por páginas e páginas por causa dos casos particulares.
É verdade, como fiz pensando em meu uso, onde não há cadastro de apelidos e nomes estrangeiros, não me preocupei, mas isso pode ser facilmente incluído, bastando utilizar um array com os “de, do,dos” que ligam os sobrenomes de algumas pessoas.
É justamente por isso que estou enviando o código e não apenas o jar, para que cada um possa adaptá-lo à sua necessidade.