[JProgressBar e CPU Usage] barra de progresso trava, CPU Usage 100%[RESOLVIDO]

1 resposta
Poneis123

Olá pessoal,

Estou desenvolvendo, com netbeans, uma aplicação que faz uma simulação um pouco complexa , criei lá um JProgressBar para quando clicar em Simular este seja acionado.

Estou acionando ele somente dando um setIndeterminate(true); é a forma correta?

O problema é que, quando inicio essa simulação o CPU Usage do S.O vai para 100% e fica em 100% por volta de uns 5 segundos… durante este periodo essa barra trava, e volta a operar somente quando finaliza a simulação.

Como faço para ela não travar? existe alguma forma de limitar a quantidade de CPU que minha aplicação utilizará?

Obrigado.

1 Resposta

R

Usar setIndeterminate() com true ou false depende das características da sua aplicação. Se você tem como estimar o quanto já foi feito de uma determinada tarefa, faz sentido usar false e atualizar o indicador de progresso de vez em quando; caso contrário, se você não tem idéia do quanto já foi feito ou do quanto falta para a tarefa terminar, melhor usar true.

Para a barra de progresso não travar, faça com que sua tarefa demorada execute numa thread em separado. A barra de progresso roda na thread do Swing (EDT - Event Dispatch Thread, que idealmente deve ficar “livre” a maior parte do tempo para não prejudicar a exibição da interface gráfica), e sua thread de processamento separado deve notificar a thread do Swing de vez em quando, nas ocasiões em que você quiser atualizar o indicador de progresso. Segue uma discussão sobre isso:

http://java.sun.com/docs/books/tutorial/uiswing/components/progress.html

Criado 23 de setembro de 2009
Ultima resposta 24 de set. de 2009
Respostas 1
Participantes 2