GARANTIR DESCONTO

Fórum Executar função ao apertar tecla F1,F2,F3.... #449721

28/07/2013

0

Tenho um sistema de vendas e queria fazer com que ao apertar uma tecla por exemplo F1 ele executa uma determinada função
como faço?
Paulo Sérgio

Paulo Sérgio

Responder

Posts

28/07/2013

ândrei Mesquita

Você deve adicionar um evento KeyListener na sua janela e, no método "keyPressed(KeyEvent arg0)" você determina, por meio de uma estrutura de teste, o que acontecerá quando o parâmetro recebido for igual a tecla F1,F2, F3 ou qualquer outra tecla por meio do seu código (getKeyCode()). Os códigos podem ser encontrados na classe KeyEvent. Abaixo, um código com mais detalhes.
CÓDIGO DO KEYLISTENER
	private class LeitorTeclas implements KeyListener
	{
		@Override
		public void keyPressed(KeyEvent arg0) 
		{
			switch(arg0.getKeyCode())
			{
			case(KeyEvent.VK_F1):
				System.out.println("Você pressionou a tecla F1");
				break;
			case(KeyEvent.VK_F2):
				System.out.println("Você pressionou a tecla F2");
				break;
			case(KeyEvent.VK_F3):
                                System.out.println("Você pressionou a tecla F3");
				break;
			}
                        System.out.println("Código da tecla: " + arg0.getKeyCode());
		}

		@Override
		public void keyReleased(KeyEvent arg0) 
		{
			
		}

		@Override
		public void keyTyped(KeyEvent arg0) 
		{
			
		}
	}

CÓDIGO DA JANELA
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Janela extends JFrame
{
	public Janela()
	{
		super("TESTE");
		setSize(300,300);
		addKeyListener(new LeitorTeclas());
		// Se você não deixar a janela selecionável, ela não 
		// fará os eventos relacionados a ela, ocorrerem
		setFocusable(true);
		setVisible(true);
	}
	
	public static void main(String [] args)
	{
		SwingUtilities.invokeLater
		(
			new Runnable()
			{
				@Override
				public void run() 
				{
					new Janela();
				}
			}
		);
	}
}

Obs.: Não se esqueça de usar o "setFocusable(true)" nos componentes em que você quiser adicionar os eventos, senão eles não responderão quando você pressionar as teclas.

Espero ter ajudado!
Responder

Gostei + 0

28/07/2013

Paulo Sérgio

Muito obrigado, era isso mesmo que estava precisando :)
Muito obrigado pela atenção

Você deve adicionar um evento KeyListener na sua janela e, no método "keyPressed(KeyEvent arg0)" você determina, por meio de uma estrutura de teste, o que acontecerá quando o parâmetro recebido for igual a tecla F1,F2, F3 ou qualquer outra tecla por meio do seu código (getKeyCode()). Os códigos podem ser encontrados na classe KeyEvent. Abaixo, um código com mais detalhes.
CÓDIGO DO KEYLISTENER
	private class LeitorTeclas implements KeyListener
	{
		@Override
		public void keyPressed(KeyEvent arg0) 
		{
			switch(arg0.getKeyCode())
			{
			case(KeyEvent.VK_F1):
				System.out.println("Você pressionou a tecla F1");
				break;
			case(KeyEvent.VK_F2):
				System.out.println("Você pressionou a tecla F2");
				break;
			case(KeyEvent.VK_F3):
                                System.out.println("Você pressionou a tecla F3");
				break;
			}
                        System.out.println("Código da tecla: " + arg0.getKeyCode());
		}

		@Override
		public void keyReleased(KeyEvent arg0) 
		{
			
		}

		@Override
		public void keyTyped(KeyEvent arg0) 
		{
			
		}
	}

CÓDIGO DA JANELA
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class Janela extends JFrame
{
	public Janela()
	{
		super("TESTE");
		setSize(300,300);
		addKeyListener(new LeitorTeclas());
		// Se você não deixar a janela selecionável, ela não 
		// fará os eventos relacionados a ela, ocorrerem
		setFocusable(true);
		setVisible(true);
	}
	
	public static void main(String [] args)
	{
		SwingUtilities.invokeLater
		(
			new Runnable()
			{
				@Override
				public void run() 
				{
					new Janela();
				}
			}
		);
	}
}

Obs.: Não se esqueça de usar o "setFocusable(true)" nos componentes em que você quiser adicionar os eventos, senão eles não responderão quando você pressionar as teclas.

Espero ter ajudado!
Responder

Gostei + 0

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

Aceitar