Como capturar teclas de numero no evento KeyPressed?

3 respostas
M

gostaria de saber um jeito mais facil de capturar teclas numéricas no método keypressed.
O que eu consigo fazer é assim:

if(evento.getKeyCode()=KeyEvent.VK_1|| evento.getKeyCode()=KeyEvent.VK_NUMPAD1|| evento.getKeyCode()=KeyEvent.VK_2|| evento.getKeyCode()=KeyEvent.VK_NUMPAD2|| ... )
Prém assim teria que fazer 20 condições, 10 pras teclas do teclado numerico e mais 10 pras teclas que ficam de cima das letras…
Tem como fazer pra pegar teclas APENAS NUMÉRICAS, por exemplo um KeyEvent.NumericKey, algo assim?

3 Respostas

M

Olá!

Se for web, pode ser por javascript.

<!-- Adicione no evento onKeyPress a função criada abaixo -->
<input type="text" onkeypress="return validaTecla('[telefone removido]', event);" />

<!-- Crie a função validaTecla -->
<script  type="text/javascript">

function validaTecla(valores, event) { 
	var BCK=8, //backspace 
    ETR=13, //return 
    DEL=127, //delete 

    key,tecla; 
	
	//Firefox
    //tecla=event.which; 
    //I.E
	tecla=event.keyCode; 
    
    key=String.fromCharCode(tecla); 

    switch(tecla) { 

        case ETR: 
        case BCK: 
        case DEL: 
            return true; 
        default: 
            if(valores.indexOf(key)!=-1) { 
				return true; 
            } 
     } 
    return false; 
}

</script>
V

O que exatamente você quer fazer? Se for uma calculadora, ou mesmo um game, o evento não vai te ajudar.

O ideal é usar o InputMap e KeyMap, como descrito aqui:

M

tenho uma jtable que eu adicionei o keypressed e quando o cara digita um numero o foco vai pra um jtextfield de numero, se o cara digita a tecla “a” ele abre um determinado jframe, etc. tenho varias funções que são acessadas a partir da tecla pressionada quando o foco ta na jtable…

Criado 17 de outubro de 2011
Ultima resposta 17 de out. de 2011
Respostas 3
Participantes 3