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?
como faço?
Paulo Sérgio
Curtir tópico
+ 0
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
CÓDIGO DA 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!
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
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
CÓDIGO DA 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!
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
Clique aqui para fazer login e interagir na Comunidade :)