GARANTIR DESCONTO

Fórum Detectar tecla pressionada - keyPressed() #569803

30/03/2014

0

Meu sistema captura a tecla pressionada e entrega uma determinada ação, como segue abaixo: Classe Principal
this.addKeyListener(this);
Função para capturar ação:
public void keyPressed(KeyEvent e) {

        if (e.getKeyCode() == KeyEvent.VK_T) {
            MinhaFuncao();
        }

}
Agora, eu não posso permitir que o usuário mantenha uma tecla pressionada, por exemplo, no caso acima, a tecla mantida pressionada vai chamar a MinhaFuncao() diversas vezes seguidas, esta função faz consultas em DB, o que causa lentidão e até travamento do sistema. Existe alguma forma de cortar a ação do teclado identificando apenas um pulso?
Dinho Pereira

Dinho Pereira

Responder

Posts

31/03/2014

Carlos Melchiades

E se a sua função retornasse um valor...tenta ae pra ve se da certo...
boolean funcaoFechada = true; 
...

public void keyPressed(KeyEvent e) {

        if (e.getKeyCode() == KeyEvent.VK_T) {

            if(funcaoFechada){
                 funcaoFechada = false; 
                 funcaoFechada = MinhaFuncao(); //qndo fechar retorna true;

            }
        }

}
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar