KeyListener não funciona tecla de atalho

3 respostas
W

alguém sabe se tem algum erro na lógica abaixo para eu pegar uma tecla de atalho: alt + k pra executar uma função??
Fiz isso, mas o ouvinte não funciona, isto é, não ta abrindo o que é pra abrir co a tecla de atalho…

private class Handler2 implements KeyListener{
		boolean alt = false;

		@Override
		public void keyPressed(KeyEvent ev) {
			if((ev.getKeyCode() == KeyEvent.VK_ALT) || (ev.getKeyCode() == KeyEvent.VK_ALT_GRAPH)){
				alt = true;
			}
			
		}

		@Override
		public void keyReleased(KeyEvent ev) {
			if((ev.getKeyCode() == KeyEvent.VK_ALT) || (ev.getKeyCode() == KeyEvent.VK_ALT_GRAPH)){
				alt = false;
			}
		}

		@Override
		public void keyTyped(KeyEvent ev) {
			if(alt && (ev.getKeyCode() == KeyEvent.VK_K)){
				cadastrarUsuario();
			}
		}
		
	}

3 Respostas

C

axo q precisa do requestFocus() no component q vc ta adicionando o keylistener
http://www.guj.com.br/java/196812-keylistener-jpanel-focus-resolvido

W

ChronosSage:
axo q precisa do requestFocus() no component q vc ta adicionando o keylistener
http://www.guj.com.br/java/196812-keylistener-jpanel-focus-resolvido

ainda assim nao funcionou… será q tem alguma coisa a ver com os componentes q estou utilizando no frame??
tem no meio um jdesktopframe no leste tem um painel no oeste tem outro painel, em cima tem a barra de menus e uma barra de ferramentas…
=S

C

n sei
-coloque System.out.println(“keyPressed”); para verificar se ta chamando o listener
-se o listener pode ser chamado a qualquer momento tente colocar o listener no jframe (jframe.addKeyListener(?))

Criado 6 de abril de 2011
Ultima resposta 9 de abr. de 2011
Respostas 3
Participantes 2