Oi pessoal,
 
gostaria de saber se existe em java algo equivalente ao método ProcessMessages da classe TApplication do Delphi. Isto é, alguma forma de a minha aplicação continuar trabalhando enquanto estou esperando que algo aconteça.
 
Tenho uma classe em Delphi que é assim (uma descrição superficial da classe):
 
 
// TEditor é um componente gráfico como por exemplo um frame
 
TEditor = class(TGraphicControl)               
private
    Clicou: boolean;
    xclique, yclique: double; 
    procedure ClicouMouse(x, y: double);
public
    function DigitalizarPonto: TPonto;
end;       
 
// Descrição dos métodos
 
// Este método é chamado sempre que ocorrer o evento do clique do mouse
// Então, quando o mouse é clicado eu recebo a coordenada onde foi o clique
procedure ClicouMouse(x, y: double);
begin
    xclique := x;
    yclique := y;                                                          // armazena a coordenada onde foi clicado o mouse 
    Clicou := true; 
end;
 
function DigitalizarPonto: TPonto;
var PontoClique: TPonto;
begin
    Clicou := false;
    while (not Clicou) do
        Application.ProcessMessages;                            // aguarda até que seja clicado o mouse 
    PontoClique := TPonto.Create(xclique, yclique); 
    Result := PontoClique;                                            // retorna o ponto do clique 
end;
 
 
Obs: O método ProcessMessages permite que a Fila de tarefas do windows continue a ser processada enquanto eu estou preso no loop, assim a aplicação continua a fazer outras coisas inclusive o clique do mouse. 
 
   
Eu poderia fazer este retorno do ponto clicado como um evento, mas isto não é interessante. O que desejo é prender o fluxo de uma sequência de código até que algo ocorra sem travar a aplicação. 
 
    Alguém sabe como fazer algo equivalente a isto em java? Aguardo ancioso!
 
 
Obrigado!
 
 

Responder a