Como executar uma JProgressbar em uma thread invocada por um JButton e que a mesma rode por 10 segundos e de 1 em 1 segundo atualize a JProgressBar na tela principal.
acho que seria um bom exemplo para o pessoal em geral, vi muitos postes que o problema resume nisso.
Os componentes swing não são thread-safe, então acho que não é uma boa usar um thread diferente do da UI para atualizar os valores.
Abraços,
L
lionrick
pareque que quando se usa o invoke later ele trava o processamento todo, e so aparece no final da execução e usar thread não trava mas não atualiza, por isso estou perdido tentei os dois modos e nenhum deu certo, eu não entendo muito de swing, mas isso me parece ser um problema comun, talvez esteja também instânciando o objeto a atualizar dentro do método, vou verificar.
G
Guilherme_Silveira
Eu uso a solucao do lipe com repaint no form e no progress logo depois de atualizar e funciona numa boa.
_
_fs
Hum, executei o código que postei com Java 1.5 e não foi necessário chamar repaint. Sei lá.
No Java 1.5 há outras features para trabalhar com Threads e Swing, recomendo que as estude.
S
Sami_Koivu
Eu quero estudar também Você não teria algum link, ou você poderia elaborar um pouco mais?
[]s,
Sami
G
Giuliano_Mega
Ois,
Que estranho, esse código funciona muito bem prá mim (exceto pelo fato de que o nome da classe é SwingUtilities e não SwingUtils).
Vou aproveitar para lembrar que você não pode acessar componentes swing diretamente de outros threads. Um artigo meio velho que trata desse problema é este aqui: