JTextArea.append não aparece na mesma hora  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
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

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?
keller
GUJ Master
[Avatar]

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
[WWW] [MSN]
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

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
[Email]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team