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?
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.
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".
import java.text.Normalizer;
class TesteNormalizer {
// 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".
public static void main(String[] args) {
String s = "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));
}
}
Ele deve imprimir:
C:\TEMP>java -cp . TesteNormalizer
Antes da normalização: U+0061 U+0301
á
O código Unicode de á é: U+00E1
Dica dos códigos Unicode dos acentos mais usados:
agudo = U+0301
grave = U+0300
circunflexo = U+0302
til = U+0303
trema = U+0308