Olá pessoal, tudo bem?
Então, estou fazendo um programa (bot) para um jogo. No entanto, preciso usar a classe Robot para o controle do mouse. (embora esse não seja o problema do tópico)
A situação é a seguinte:
- Tenho uma classe que extends JFrame implements KeyListener, quando o usuário aperta F12 ele vai ativar o looping infinito que consequentemente irá chamar toda hora o método limparInventario(), até este ser interrompido. (teoricamente, ele será interrompido quando o usuário apertar F10 ou F11.)
(obs: robot é o objeto da classe Robot. o delay que é settado na primeira linha (é recebido atraves de um JOptionPane) atraves de um atributo int da classe Ouvinte e posteriormente, tal como no código é passado como delay para o objeto robot.)
public void limparInventario()
{
robot.delay(ouvinte.getDelay());
robot.mousePress(InputEvent.BUTTON3_MASK);
robot.mouseRelease(InputEvent.BUTTON3_MASK);
robot.keyPress(32); // 32 == barra de espaço.
robot.keyRelease(32);
}
Fragmento da classe que extends JFrame implements KeyListener
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == e.VK_F12)
{
while(flag == true)
{
if(e.getKeyCode() == e.VK_F10)
{
flag = false;
}
else if(e.getKeyCode() == e.VK_F11)
{
System.exit(0);
}
else
{
limparInventario();
}
}
}
}
O Problema é o seguinte, o usuário aperta F12, então o programa funciona perfeitamente como eu esperava. mas, se o usuário decidir apertar o F10 para pausar o jogo ou F11 para finalizar o programa não aceita e continua no looping infinito. Acredito que isso seja um problema em relação ao Focus , alguem sabe se é isso mesmo e sabe me indicar uma possível solução?
[]
ArchV.