| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/10/2008 19:22:58
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
Estou dando um append em um JTextArea e logo após chamando uma ação demorada na GUI. Eu queria saber um jeito de forçar a GUI a se atualizar antes de iniciar a ação demorada. Nota: eu não quero que a ação rode em outra thread, eu quero travar a aplicação mesmo, enquanto a ação não terminar, mas antes de começar a ação eu quero que o texto do JTextArea seja atualizado com o que eu já apendei. No Delphi era só chamar o update do componente se me lembro bem...
PS: dei uma olhada rápida sobre invokeLater e EDT mas não consegui "pescar" como eu usaria.
This message was edited 1 time. Last update was at 20/10/2008 19:23:27
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/10/2008 16:19:23
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
Ninguém nunca precisou fazer uma tarefa longa como *parte* de um evento?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/10/2008 23:17:11
|
keller
GUJ Master
![[Avatar]](/images/avatar/f410588e48dc83f2822a880a68f78923.jpg)
Membro desde: 12/11/2003 16:24:00
Mensagens: 1817
Localização: Auckland - NZ
Offline
|
Não lembro quando nem como nem porque, mas as vezes setVisible(false) setVisible(true) resolve o problema.
É a melhor solução? Não! É elegante? Não!
Se você precisa disso pra ontem tente isso, senao tente encontrar uma outra solucao, refazer o codigo, tentar em outro componente tipo algum da SwingLabs.. enfim..
Boa sorte.
This message was edited 1 time. Last update was at 21/10/2008 23:17:52
|
Guilherme I. Keller (Gui)
Diploma in Web Development and Desktop Publishing
SCJA | SCJP | SCWCD | SCBCD | CSM
"Test it, before it test you."
http://flickr.com/guikeller |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/10/2008 14:57:33
|
renatosilva
GUJ Master
Membro desde: 16/12/2004 17:09:19
Mensagens: 1787
Offline
|
Não sei é o que você está dizendo, mas resolvi assim:
No actionPerformed eu desabilito o frame e disparo o código em outra thread com prioridade normal. Assim eu desbloqueio a EDT, e o append aparece "na hora", e no final a outra thread habilita o frame de novo.
Só fiquei sem entender a utilidade do SwingWorker...
Não entendi qual o mal de permitir que se force a atualização da GUI dentro do manipulador...
This message was edited 3 times. Last update was at 19/12/2008 15:59:56
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/10/2008 15:04:02
|
filipechaves
JavaChild
Membro desde: 26/09/2008 08:19:29
Mensagens: 128
Offline
|
keller wrote:Não lembro quando nem como nem porque, mas as vezes setVisible(false) setVisible(true) resolve o problema.
É a melhor solução? Não! É elegante? Não!
Se você precisa disso pra ontem tente isso, senao tente encontrar uma outra solucao, refazer o codigo, tentar em outro componente tipo algum da SwingLabs.. enfim..
Boa sorte. 
isso nao seria para substituir o componnent.repaint?
não sei se é aplicavel pq isso serve qndo o esqma eh montado em tempo de execução...
ou eu que intendi mal?
|
Forte, Aguerrido e Bravo!
NHRC
www.nhrc.com.br |
|
|
 |
|
|