JProgressBar - Setando os valores

5 respostas
G

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....

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) {

			}
		}
	}
}

5 Respostas

renzonuccitelli

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…

G

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%…

Marcio_Duran

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%…

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…

G

Marcio,
Tudo bem?

Desculpa, mas nao entendi o q quer dizer…

abs.

Marcio_Duran

guilherme.cq:
Marcio,
Tudo bem?
Desculpa, mas nao entendi o q quer dizer…
abs.

Sim eu explico.

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%…

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

Criado 10 de janeiro de 2009
Ultima resposta 12 de jan. de 2009
Respostas 5
Participantes 3