Olá pessoal…
Estou querendo bloquear a execução da tecla backspace e da tecla delete em um campo JTextField. To tentando fazer assim no evento keypressed do JTextField:
public void keyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == evt.VK_BACK_SPACE || evt.getKeyCode() == evt.VK_DELETE) {
evt.consume();
}
}
porém ele executa o evento consume(), mas nao surte efeito nenhum, os caracteres continuam sendo excluidos do campo.
alguem sabe o que fazer para nao permitir que os caracteres digitados nao possam mais ser apagados??? ou sei lah, onde que é executada a operacao que apaga literalmente o caractere, qual é o método que faz isso no JTextField???
Desde já agradecido !!!
Um chute: Tente fazer isso no evento KeyDown.
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == 8){
e.consume();
}
}
olá vinigodoy, cara tentei de td q é jeito colocar meu codigo dentro desse keyDown, mais acabei me perdendo td aqui, esse método keyDown ai q vc falo, ele é da classe JTextField neh, mas eu nao consegui reescrever ele…
caso vc ja tenha feito isso, vc pudia da um exemplinho de codigo ai neh, pra me ajuda um poco 
valeu pela atencao !!!
Coloque no keyTyped:
[code]public void keyTyped(KeyEvent e) {
if(e.getKeyChar() == 32) { // espaço
e.consume();
}
}[/code]
T+
diego2005, o codigo 32 é referente a qual tecla?
Bom pessoal, valeu pela atencao ai !!!
Mas eu tava mechendo no codigo, compilando, rodando, mechendo no codigo, compilando, rodando, mechendo no codigo, compilando, rodando, tentando fazer funcionar neh, derrepente eu tirei um if da minha classe aqui, que nao tinha nada a ver com a história, simplesmente tirei ele pq nao tava usando, dai comecou a fazer efeito o método consume() na tecla backspace, veja bem, o if nao tinha nada a ver com a história, mais foi a unica coisa diferente que tinha feito no codigo na hora em q comecou a funcionar, agora nao me perguntem pq !!! hehehe e o consume na tecla delete nao tava funcionando pq eu tava com duas condiçoes num if assim
if (evt.getKeyCode() == evt.VK_BACK_SPACE && evt.getKeyCode() == evt.VK_DELETE) {
evt.consume();
}
dai tbem nao tava funcionando, mas dai eu separei e funcionou, deixei assim
public void keyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == evt.VK_BACK_SPACE) {
evt.consume();
}
if (evt.getKeyCode() == evt.VK_DELETE) {
evt.consume();
}
}
Como comentado no trecho de código que postei, o 32 é o caractere backspace…
T+
oq acontece é que vc testa se o evento é igual as duas telas ao mesmo tempo
if (evt.getKeyCode() == evt.VK_BACK_SPACE && evt.getKeyCode() == evt.VK_DELETE) {
evt.consume();
}
não tem como evt.getKeyCode() ser igual a bkspace e delete, o certo seria ou. Portanto, tenta esse codigo.
if (evt.getKeyCode() == evt.VK_BACK_SPACE || evt.getKeyCode() == evt.VK_DELETE) {
evt.consume();
}
huuum, é mesmo, momente de bobeira, acontece, kkkk
Ontem olhando o codigo da minha classe que eu tinha deixado em comentario, referente ao meu primeiro post, eu vi que entre as duas condiçoes do if tinha o sinal de || ‘ou’ e nao de && ‘e’ como eu postei, eu q digitei errado na hora de postar, entao nao tinha o pq de nao funcionar.
diego2005, ontem q eu me liguei, o codigo 32 é da tecla ‘space’, e eu queria bloquear a tecla ‘backspace’ que se nao me engano é 8, por isso que quando coloquei o 32 tbem nao funcionou, hehehe. Por isso que eu gosto de usar as variaveis com o nome das teclas ao inves do codigo.
Eu dei uma pesquisada no site da sun nos bugs do java, e tinha um post dum cara que tbem reclava que o metodo consume() nao fazia efeito quando a tecla ‘backspace’ era pressionada, mas a versao do java que o cara usava na epoca era 1.2 se me falha a memoria, e tbem nao tinha o item fixed no topico, que diz respeito se o bug foi concertado ou nao, mas sei lah, o importante é que agora o q eu queria fazer funcionou, nunca mais vo me incomodar com datas no java !! heheheh
Obrigado pela atencao de tds, ultimamente tah meio dificil ser correspondido aqui no guj devido a tantos topicos e o servico de notificacoes estar desabilitado, por isso quero agradecer a vcs que perderam tempo tentando me ajudar, Obrigado !!!