Treads - Atualização Tela

Olá Pessoal,

Possuo um programa que atuliza alguns bargraphs na tela principal, semelhante aos bargraphs de memoria do gerenciador de tarefas…

Tenho utilizado uma tread que chama de tempos em tempos o bargraph e atulializa a tela atraves do metodo paint.

A questão é:
Essa é a maneira mais inteligente?

Além dos bargraphs a interface principal implementa uma Runnable para conversao dos dados e apresentacao na tela. dentro da Runnable possuo um for infinito e um sleep de 1ms.

mas as interfaces que atulizam a tela parecem que estao muito lentas ainda…
pois as atulizaçoes na tela devem ser muito rapidas, na ordem de nano segundos.

é possivel?

Voces poderiam me ajudar?

Use o javax.swing.Timer para essa tarefa. É melhor do que usar uma Thread própria. Se for usar a thread, tome o cuidado de chamar os métodos do swing usando EventQueue.invokeLater.

O método paint também não é o mais indicado, e sim o repaint() ou revalidate().

Na verdade, é impossível atualizar a sua tela tão rápido. O máximo que vc vai obter é a taxa de refresh do seu monitor, que é, na melhor das hipóteses, 75Hz.
Ou seja, 1/75 = 0,013 segundos.

Seu olho, entretanto, consegue ver uma taxa muito menor que essa. Algo em torno de 100ms é suficiente para um bom efeito.