Threads e GUI [Resolvido]

7 respostas
V

Olá pessoal, recentemente eu criei um tópico aqui sobre como integrar Threads e MVC, o pessoal me deu boas dicas de como trabalhar com threads e tb da utilização da BlockingQueue!
Mas ainda não ficou muito claro qual é a melhor forma de integrar Threads em background com a interface GUI!
Por exemplo imagine uma situação em que exista uma GUI e em background eu necessite executar um processo que exige atualizações na interface GUI como uma barra de progresso por exemplo ou TextField!
Vocês poderiam me dar dicas de como programar isto, não estou pedindo código fonte mas sim um pequeno algoritmo indicando os passos de como trabalhar com isso :wink:

7 Respostas

Felagund

SwingWorker.

Crie uma instancia do SwingWorker, programe o metodo doInBackground e chame o execute.

V

Felagund:
SwingWorker.

Crie uma instancia do SwingWorker, programe o metodo doInBackground e chame o execute.

Muito obrigado pela ajuda Felagund, o SwingWorker ele tem bons desempenhos em tarefas em background que acessem o banco de dados como no meu caso?

zorba

ele serve pra isso mesmo. faz uma looonga requisição, sem travar sua GUI

V

muito obrigado zorba pela ajuda!
vou aprender a usar o SwingWorker, ele me parece bem prático

fabiocsilva

Não sei exatamente o porquê, mas a classe thread normal não funciona bem com objetos swing. Num projeto desktop que fiz recentemente, só conseguir fazer algumas coisas rodarem em background(como um popup exibindo a mensagem “Por favor aguarde…”) utilizando o SwingWorker mencionado por Felagund. Funciona mesmo, bote fé.

V

Muito obrigado fabiocsilva e a todos pela a ajuda!

zorba

a classe Thread normal não funciona bem pq swing não é thread safe. a proposito, nenhum toolkit (SWT, SWing) é thread safe
swingworker faz a mágica

Criado 8 de julho de 2010
Ultima resposta 8 de jul. de 2010
Respostas 7
Participantes 4