terça-feira, 15 de fevereiro de 2011

JProgressBar

Boa noite!!!
Vou começar postando um exemplo de JProgressBar.
è algo simples, porém, as vzs dá um nó
:D

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

Oferecimento: FORMIGON