[RESOLVIDO]KeyListener

4 respostas
F

Boas Pessoal

Eu tive a procurar e encontrei muitos exemplos úteis de keylistener.

Mas não consegui encontrar um exemplo.

Criar uma simples JFrame sem nada nela incluído . E essa JFame tivesse tipo um (evento keylistener).

Tipo eu abria o programa, pressionava a tecla B, e a consola fazia print da tecla B.

O máximo que consegui fazer foi com um textfield (adicionando o evento keylistener ).

Em resume gostava de criar um JFrame que reconhecesse as teclas quando pressionadas.

4 Respostas

javax.swing.Daniel

Espero que seja o que você quer:

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.*;

public class Teste extends JFrame
{
	private static final long serialVersionUID = 1L;
	
	public Teste()
	{
		addKeyListener( new KeyListener()
		{
			public void keyTyped(KeyEvent e)
			{
				// Pressione a letra B e aparecerá a frase: Letra B
				if(e.getKeyChar() == KeyEvent.VK_B)
				System.out.println("Letra B");				
			}
			
			@Override
			public void keyReleased(KeyEvent e)
			{
								
			}
			
			@Override
			public void keyPressed(KeyEvent e) 
			{
				
				
			}
		});
		
		setSize(500, 500);
		setVisible( true );		
	}	
	
	public static void main(String[] args) 
	{
		javax.swing.SwingUtilities.invokeLater(new Runnable()
		{
			public void run()
			{
				new Teste();
			}
		});

	}
}
F

Obrigado é exactamente o que preciso.!

Mas um pequena dúvida.

Não é possível com o programa minimizado pois não?

Supostamente, a minha intenção em criar um programa com atalhos…com ele minimizado ou até escondido seria muito melhor.

E

Caro Fabio10,

O que você está querendo fazer se chama KeyLogger e em JAVA o máximo que vai conseguir é capturar dados digitados dentro da sua aplicação, ou seja que estejam rodando via interface JVM, janela aberta e nada fora dela.

Existe uma API chamada HOOK que te possibilita acessar recursos do sistema operacional, como o teclado, mas no caso, o mais recomendado é procurar desenvolver uma solução em linguagem C, onde você consegue capturar dados diretamente do Hardware, no caso, tudo o que for digitado no teclado. A API HOOK é feita em linguagem C também.

Tenha cuidado, pois esse tipo de aplicação em ambiente empresarial dá justa causa e a grande maioria dos antivirus já reconhecem como Trojans.

Abraço.
Emmanuel

F

emmanuelrizzo:
Caro Fabio10,

O que você está querendo fazer se chama KeyLogger e em JAVA o máximo que vai conseguir é capturar dados digitados dentro da sua aplicação, ou seja que estejam rodando via interface JVM, janela aberta e nada fora dela.

Existe uma API chamada HOOK que te possibilita acessar recursos do sistema operacional, como o teclado, mas no caso, o mais recomendado é procurar desenvolver uma solução em linguagem C, onde você consegue capturar dados diretamente do Hardware, no caso, tudo o que for digitado no teclado. A API HOOK é feita em linguagem C também.

Tenha cuidado, pois esse tipo de aplicação em ambiente empresarial dá justa causa e a grande maioria dos antivirus já reconhecem como Trojans.

Abraço.
Emmanuel

Pois a minha intenção era criar um programa em que se escondia. Carregava numa tecla tipo 0 e ele executava um programa.

Uma espécie de programa que executava atalhos.

Criado 16 de setembro de 2011
Ultima resposta 17 de set. de 2011
Respostas 4
Participantes 3