Pequena dúvida sobre SwingWoker e Worker Thread

4 respostas
carlos.e.a

Ola pessoal. Estive estudando sobre a classe SwingWorker e surgiu uma duvida. Quando o metodo done() é invocado ele roda na EDT. Mas como o SwingWorker sabe identificar para qual EDT ele irá enviar, por exemplo em um aplicativo com varios componentes swing independentes onde cada um tem sua EDT. Estava imaginando que o objeto identificaria atraves do local onde ele foi instanciado. Mas isso significaria em erro caso o mesmo fosse instanciado fora de qualquer componente swing. É isso mesmo ou estou totalmente enganado(mais provável ja que criei essa teoria apenas na tentativa de seguir com os estudos =D) Essa duvida esta me mantendo meio parado nos estudos. Nao consigo continuar antes de tirá-la. =D
Alguem para dar uma luz?!

Desde já agradeço.

4 Respostas

lucasportela

Bom, creio que ele efetua o done() na classe que estendeu o SwingWorker

public class Teste extends SwingWorker<T, V> {}

então o método done() deste SwingWorker irá retornar para a classe Teste

E

carlos.e.a:
Mas como o SwingWorker sabe identificar para qual EDT ele irá enviar, por exemplo em um aplicativo com varios componentes swing independentes onde cada um tem sua EDT.

Há apenas uma e tão somente uma EDT (Event-Dispatching Thread) no programa inteiro. Portanto, não existe uma EDT para cada componente Swing independente.

carlos.e.a

Hum…era uma segunda coisa que eu tinha imaginado. Entao mesmo que eu tenha varios componentes independentes(jframes independentes) a API cria somente uma EDT, né isso?

Agora as coisas começam a fazer mais sentido. Se alguem tiver mais algum toque ou material sobre o assunto seria bem vindo!

Obrigado!!!

carlos.e.a

lucasportela:
Bom, creio que ele efetua o done() na classe que estendeu o SwingWorker

public class Teste extends SwingWorker<T, V> {}

então o método done() deste SwingWorker irá retornar para a classe Teste

Blz, mas a minha duvida na verdade era sobre que thread executaria o codigo, entendeu?!

De qualquer forma valeu!

Criado 14 de agosto de 2011
Ultima resposta 17 de ago. de 2011
Respostas 4
Participantes 3