JProgressBar - Setando os valores

Salves Pessoal sem o que fazer no sábado a noite e entao estuda Java!

Seguinte…

Estou lendo um XML beeeeem grande, enquanto leio-o, gostaria de colocar uma progressBar…
Já ate configurei o SwingWorker bunitinho, mas a duvida esta no progresso da barra…

Eu preciso ficar setando o valor de progresso???

A Classe não faz isso sozinha???

Todos os exemplos que busquei na internet, eu fico setando o valor…
Existe uma maneira de a medida q ler o arquivo, a barra ir atualizando e quando acabar de ler… dar os 100%???

Segue um código de exemplo que tenho…
Onde tenho um For q fica incrementando a barra…

[code]import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;

public class ProgressBarExamplo extends JPanel {
JProgressBar pbar;

static final int MY_MINIMUM = 0;

static final int MY_MAXIMUM = 100;

public ProgressBarExamplo() {
	pbar = new JProgressBar();
	pbar.setMinimum(MY_MINIMUM);
	pbar.setMaximum(MY_MAXIMUM);
	pbar.setStringPainted(true);
	add(pbar);
}

public void atualizaBarra(int valor) {
	pbar.setValue(valor);
}

public static void main(String args[]) {

	final ProgressBarExamplo barra = new ProgressBarExamplo();

	JFrame frame = new JFrame("Progress Bar Example");
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setContentPane(barra);

	frame.pack();
	frame.setVisible(true);
	frame.setSize(220, 60);
	
	for (int i = MY_MINIMUM; i <= MY_MAXIMUM; i++) {
		final int percent = i;
		try {
			SwingUtilities.invokeLater(new Runnable() {
				public void run() {
					barra.atualizaBarra(percent);
				}
			});
			Thread.sleep(5);
		} catch (InterruptedException e) {

		}
	}
}

}[/code]

Vc tem que setar os valores, afinal, como é que a classe saberia a quantidade de trabalho já realizado? O que vc pode fazer é setar o progress bar como indeterminado, mas aí ele não mostra nenhum valor, apenas fica mostrando uma barra de que algum trabalho está sendo realizado, como aquela barra de inicialização do Windows…

Bem, entao a barra de progresso na verdade é uma mentira neh… digo, vc tem q calcular direito senão o progresso de ler o arquivo e o da barra podem nao bater…

o arquivo sendo lido… e a barra ja estar com 100%…

[quote=guilherme.cq]Bem, entao a barra de progresso na verdade é uma mentira neh… digo, vc tem q calcular direito senão o progresso de ler o arquivo e o da barra podem nao bater…

o arquivo sendo lido… e a barra ja estar com 100%…

[/quote]

Ela esta lendo como se fosse um preload é isso que você quer dizer, o que esta sendo atribuído para o arquivo XML não tem esse efeito real, só por curiosidade já esta implementado pode expor o código por inteiro.O preoload funciona realmente…

Marcio,
Tudo bem?

Desculpa, mas nao entendi o q quer dizer…

abs.

[quote=guilherme.cq]Marcio,
Tudo bem?
Desculpa, mas nao entendi o q quer dizer…
abs.[/quote]
Sim eu explico.

[quote=guilherme]
JProgressBar "Bem, entao a barra de progresso na verdade é uma mentira neh… digo, vc tem q calcular direito senão o progresso de ler o arquivo e o da barra podem nao bater…
o arquivo sendo lido… e a barra ja estar com 100%… [/quote]
No que eu negritei você pode entender o preload

preload ->O preload é um daemon que, primeiramente, detecta os programas mais utilizados no seu computador. Após isso vai pré-carregando esses programas na memória RAM para que o mesmo inicie mais rápido, quando você solicitar.

O XML retém o encapsulamento de dados e não é, então ele é dinâmico.

Abrasss