Exemplo de JProgressBar

Estou enviando um exemplo de JProgressBar que aceita uma String de mensagem, ou um valor int para carregar em %. tb é possivel mudar a cor de Fundo do ProgressBar, ou a cor da barra que carrega, e mudar a fonte da escrita.

tem uma imagem, mas é só substituir.

[code]import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.border.Border;

import org.jfree.ui.FontChooserPanel;

import lib.Formato;

public class Espera extends JDialog implements Runnable {
private static final long serialVersionUID = 3977298828280279606L;
private static final int MINIMUM = 0;
private JPanel painel = null;
private int qtTotal, qtdeProcessado;
private JTextField txtQtdeProcessada;
private javax.swing.Timer activityMonitor;
JProgressBar pbar = null;

/**
 * Construtor
 */

public void run() {
	
}

public Espera() { 
	this.pbar = new JProgressBar();
} 
public Espera(String texto){
	this();
	this.pbar.setIndeterminate(true);
	this.pbar.setStringPainted(true);
	this.pbar.setString(texto);
	init(); 
	setVisible(true);
}

public Espera(int qtdTotal){
	this();
	this.qtTotal = qtdTotal;
	this.pbar.setIndeterminate(false);
	this.pbar.setStringPainted(true);
	this.pbar.setMaximum(this.qtTotal);
	
	init(); 
	setVisible(true);
}

public void setFont(String nomeFonte){
	this.pbar.setFont(new java.awt.Font(nomeFonte, 0, 12));
}

public void setCorFundo(Color corFundo){
	this.pbar.setBackground(corFundo);
	
}

public void setCorBarra(Color corBarra){
	this.pbar.setForeground(corBarra);
}

  	  	
public int getQtTotal() {
	return qtTotal;
}

public void setQtTotal(int qtTotal) {
	this.qtTotal = qtTotal;
}

public int getQtdeProcessado() {
	return qtdeProcessado;
}

public void setQtdeProcessado(int qtdeProcessado) {
	//this.qtdeProcessado = qtdeProcessado;
	pbar.setValue(qtdeProcessado);
}	


public void setTexto(String texto) {
	pbar.setString(texto);
}

private void init(){
	initialize(); 
    
    //Posiciona a janela
    Toolkit thekit = this.getToolkit();
    Dimension dim = thekit.getScreenSize();
    int hor = (dim.width/2) - 150;
    int ver = (dim.height/2) - 100;
    this.setUndecorated(true);
    this.setBounds(hor, ver, 301, 151);
    this.setVisible(true);
    this.requestFocus();
}

/**
 * Construção do painel
 * @return void
 */
private void initialize() { 
    painel = new PanelBackground("/img/espera.png");
    painel.setLayout(null);
    painel.setBorder(Formato.GRID_BORDER);
    painel.setBounds(1, 1, 300, 150);
    
  
    
    pbar.setBounds(155,115,120,20);
    pbar.setVisible(true);	
	painel.add(pbar);
    this.setContentPane(painel); 
    
}

}
[/code]

um exemplo de como ele é aplicado com um int bem basico só para testes mesmo.

[code]import java.awt.Color;

import javax.swing.SwingUtilities;

import lib.Espera;

public class TesteEspera {

public static void main(String[] args) {
	Espera r = new Espera(100000000);
	r.setCorFundo(Color.DARK_GRAY);
	r.setCorBarra(Color.blue);
	r.setFont("Verdana");
	Thread tr = new Thread(r);
	tr.start();
	int a =100000000;
	for(int i=0; i<=a; i++){			
		r.setQtdeProcessado(i);
	}
		

		
}

}[/code]

e agora um exemplo de uma String

[code]import java.awt.Color;

import javax.swing.SwingUtilities;

import lib.Espera;

public class TesteEspera {

public static void main(String[] args) {
	Espera r = new Espera("Aguarde...");
	r.setCorFundo(Color.DARK_GRAY);
	r.setCorBarra(Color.YELLOW);
	r.setFont("Verdana");
	Thread tr = new Thread(r);
	tr.start();
	

		
}

}
[/code]

Espero que ajude quem precisar…

Abçssssssss 8)