[RESOLVIDO] Combinação de teclas, acentuação e vogais
6 respostas
D
DSergio
Oi javeiros!
Seguinte, estou implementando um teclado virtual e esbarrei na seguinte dificuldade, combinar um acento (agundo, til, etc) e uma vocal.
Exemplo: Eu digito no teclado virtual o acento agudo “´” e depois a vogal “A”, após a digitação do “A” ela converte para “Á”.
Alguém já implementou algo parecido. Poderiam me ajudar?
Só por curiosidade, esse teclado já está funcionando? Ele consegue pegar a janela que está em processamento (tipo… notepad) e escreve dentro dela ?
Tchauzin!
E
eliangela
já tentou dar uma olhada na tabela ASCII?
e na classe Robot?
Até
D
DSergio
Bom dia a todos!
Srta. Lina, este teclado é apenas para aplicação que estou criando, que será usado em touch screen. Ou seja o teclado virtual é exclusivo pra esta aplicação desktop.
E entendo que talvez a combinação do teclado virtual e mas a classe Robot que a Srta. Eliangela mencionou seria a saida para o que esta procurando.
Srta. Eliangela, a classe Robot não se aplica a este programa. O teclado virtual já funciona, mas necessito de um algoritimo que combine chaves de acetuação e vogais.
Exemplo: Digitamos “´” acento agundo e depois “a” e o programa junta as duas chave e forma “á”.
Muito abrigado pela ajuda, vocês são muito gentis.
Entretanto, o acento agudo a ser usado é o Unicode "\u0301" (em Unicodês, U+0301, COMBINING ACUTE ACCENT). O que deve ser feito:
Achar os códigos gerados pelo teclado para os acentos
Criar uma string contendo a letra e o acento correspondente
Usar java.text.Normalizer.normalize(). Ela irá retornar uma outra string.
T
thingol
O programa abaixo requer Java 6.0. Em Java 5.0 ou anteriores, não existe o java.text.Normalizer, e você terá de achar os acentos "no braço".
importjava.text.Normalizer;classTesteNormalizer{// Se for rodar este programa em Windows, para visualizar corretamente os acentos, abra// um Prompt de Comando, altere a fonte para Lucida Console (no menu Propriedades do Prompt de Comando),// e então digite o comando "chcp 1252".publicstaticvoidmain(String[]args){Strings="a"+"\u0301";System.out.printf("Antes da normalização: U+%04X U+%04X %n",(int)s.charAt(0),(int)s.charAt(1));s=Normalizer.normalize(s,Normalizer.Form.NFC);System.out.println(s);System.out.printf("O código Unicode de á é: U+%04X %n",(int)s.charAt(0));}}