Boa tarde Pessoal!
Estou com dificuldade em fazer sincronização com 2 Threads.
Criei um programa que cria um objeto Robot, e faz com que o mouse fique se movimentando pela tela, porém, gostaria de fazer com que, ao apertar a tecla “ESC”, o programa pare. Para isso, dividi as funções em 2 Threads, conforme abaixo:
[list]Thread 1 - Criação do Objeto Robot, e acionamento do método mouseMove();[/list]
[list]Thread 2 - Implementação da Interface KeyListener em um JFrame invisível;[/list]
Entretanto, a sincronização entre as 2 Threads não está funcionando.
Se alguém puder me ajudar, segue o código abaixo:
[code]//Thread 1
import java.awt.;
import java.awt.event.;
class TestThread1 extends Thread{
public void run(){
try{
Robot robot = new Robot();
int x, y;
for(x=0; x<1280; x++){
for(y=0;y<1024;y++){
//TestThread1.sleep(1);
robot.mouseMove(x,y);
}
}
}
catch(AWTException e){
System.err.println("Erro ao Criar o Robô");
}
}
}[/code]
[code]//Thread 2
import java.awt.;
import java.awt.event.;
import javax.swing.*;
class TestThread2 extends Thread implements KeyListener{
JFrame frame=new JFrame();
public void run(){
frame.addKeyListener(this);
//this.setPriority(10);
}
public void keyPressed(KeyEvent e){
switch (e.getKeyCode()){
case KeyEvent.VK_ESCAPE:
System.exit(0);
}
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
}[/code]
[code]class TesteThread extends Thread{
public static void main(String[] args){
TestThread1 testeThread1=new TestThread1();
TestThread2 testeThread2=new TestThread2();
testeThread2.start();
testeThread1.start();
}
}[/code]