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]
