| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2011 10:05:26
|
juceliohv
JavaTeenager
![[Avatar]](/images/avatar/42bda3b3e1b568fea3655161639b976e.jpg)
Membro desde: 26/08/2010 11:31:55
Mensagens: 178
Offline
|
Bom dia a todos
Tenho o seguinte problema.
Preciso criar um processo que é disparado por uma tela, porém a tela não pode ficar imóvel, tenho que informar o usuário sobre o andamento do processo através de uma barra de progresso e de mensagens que serão mostradas por um JTextField.
Criei um exemplo simples usando o pattern Observer, consigo atualizar o System.out.println no console, mas não consigo atualizar a tela em tempo de execução.
O que está errado?
Segue código da Tela Observer :
Segue código da classe Observable:
|
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2011 10:42:54
|
Luiz_Gustavo
Virtual Machine Man
![[Avatar]](/images/avatar/012d9fe15b2493f21902cd55603382ec.png)
Membro desde: 30/04/2005 12:55:11
Mensagens: 518
Localização: Assis
Offline
|
Olá!
Você tentou executar o processo em uma thread separada?
Pelo que entendi você está executando o processo a partir da tela, ou seja, a partir da mesma thread que a tela. Se o processo for demorado (como imagino que é, por usar um JProgressBar) a tela ficará "travada" até que o processo termine.
Neste link você encontra exemplo de como usar uma instância de Task para execução do processo:
http://download.oracle.com/javase/tutorial/uiswing/components/progress.html
Task is a subclass of javax.swing.SwingWorker. The Task instance does three important things for ProgressBarDemo:
1. The instance invokes the doInBackground in a separate thread. This is where the long-running task is actually executed. Using a background thread instead of the event-dispatching thread prevents the user interface from freezing while the task is running.
2. When the background task is complete, the instance invokes the done method in the event-dispatching thread.
3. The instance maintains a bound property, progress, that is updated to indicate the progress of the task. The propertyChange method is invoked each time progress changes.
Abraço!
This message was edited 1 time. Last update was at 06/04/2011 10:48:10
|
Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional
|
|
|
 |
|
|
|
|