Fala Galera,
Estou com um problema, preciso de um campo que:
1 - nao tenha tamanho fixo nem mascara
2 - permita apenas letras e espaços
3 - nao permita acentuacao e qualquer outro caractere
É por exemplo um campo nomeCliente, mas nao pode ter acento
Tentei usar mascara com o JFormattedTextField mas nao ficou legal, a mascara atrapalha ja que ela tem tamanho fixo, entao teria que ser com o JTextField mesmo
Ate agora consegui fazer tudo, o problema eh que o codigo abaixo permite acentos, como ç, á, é, outros…
[code]JTextField nome = new JTextField();
nome.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
if (!(Character.isLetter© ||
(c == KeyEvent.VK_BACK_SPACE) ||
(c == KeyEvent.VK_SPACE))) {
e.consume();
}
}[/code]
Neste exemplo apenas Letras sao permitidas, alem das teclas backspace e a barra de espaço.
O problema eh que ele permite letras acentuadas, e eu não posso permitir, alguem sabe uma saida?
Valeu
[quote=thiagot]Fala Galera,
Estou com um problema, preciso de um campo que:
1 - nao tenha tamanho fixo nem mascara
2 - permita apenas letras e espaços
3 - nao permita acentuacao e qualquer outro caractere
É por exemplo um campo nomeCliente, mas nao pode ter acento
Tentei usar mascara com o JFormattedTextField mas nao ficou legal, a mascara atrapalha ja que ela tem tamanho fixo, entao teria que ser com o JTextField mesmo
Ate agora consegui fazer tudo, o problema eh que o codigo abaixo permite acentos, como ç, á, é, outros…
[code]JTextField nome = new JTextField();
nome.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
if (!(Character.isLetter© ||
(c == KeyEvent.VK_BACK_SPACE) ||
(c == KeyEvent.VK_SPACE))) {
e.consume();
}
}[/code]
Neste exemplo apenas Letras sao permitidas, alem das teclas backspace e a barra de espaço.
O problema eh que ele permite letras acentuadas, e eu não posso permitir, alguem sabe uma saida?
Valeu
[/quote]
Você está no caminho certo. Em vez de Character.isLetter© (que pega a letra “á” por exemplo), use:
('A' <= c && c <= 'Z' || 'a' <= c && c <= 'z')
É meio brutal mas deveria funcionar.
Brigadao thingol, era tudo o que eu precisava, resolveu 100% meu problema!
Abraço