[RESOLVIDO] JProgressBar como usar? jah li o doc do JProgressBar, mais naum entendi muito bem!

Galera, alguém me ajudar como utilizar o JProgressBar??w jah li o doc dele mais naum entendi direito.

tipo eu tenho lá um sistema do login, ao clicar em logar, ele verifica no bd se existe, se for o caso, dae abre uma janela com o JProgress, que ao concluir abri a janela principal, alguém, poderia me ensinar um método???
Eu não entendi muito o doc do JProgressBar!!

Obrigado pela atenção!!!

http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/components/progress.html

Ai vai o codigo, implementei ele e funcionou direitinho em um projecto meu:

progressBar = new JProgressBar(0, 100);
		timer = new Timer(1000, new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				progressBar.setValue(progressBar.getValue()+30);
				if(progressBar.getValue()>=100)
				{
					timer.stop();
					dispose();
					new Principal();
				}
			}
			
		});

Obs: Não esqueça de importar a classe timer (import.javax.swing.timer)

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);   
    }   
           

           
}   

}
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]

[quote=Vanilson]Ai vai o codigo, implementei ele e funcionou direitinho em um projecto meu:

progressBar = new JProgressBar(0, 100);
		timer = new Timer(1000, new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				progressBar.setValue(progressBar.getValue()+30);
				if(progressBar.getValue()>=100)
				{
					timer.stop();
					dispose();
					new Principal();
				}
			}
			
		});

Obs: Não esqueça de importar a classe timer (import.javax.swing.timer)[/quote]

vlw, hey, mais como faço pra que ele executa automáticamente???

[quote=vitoryudi]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);   
    }   
           

           
}   

}
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][/quote]

opa, vlw pelo exemplo, vou dá uma estudade nele, hey, mais saber come executar automaticamente o JProgressBar, tipo, eu clico em logar, dae abre uma outra JFrame e ele inicia automaticamente???

Obrigado pela atenção!

q nem vc viu como aplica ele???

[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]

cria um botao e quando ele for clicado carrega o Jprogressbar, até ele carregar inteiro, vc pode usar este acima, ou então, o de string escrito aguarde, ou qlqr outro texto.

[quote=vitoryudi]q nem vc viu como aplica ele???

[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]

cria um botao e quando ele for clicado carrega o Jprogressbar, até ele carregar inteiro, vc pode usar este acima, ou então, o de string escrito aguarde, ou qlqr outro texto.

[/quote]

naum entendi direito, o que vc mostrou! O meu código ficou assim:


import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
import javax.swing.JProgressBar;

public class LoadFrame extends javax.swing.JFrame {
          final static int interval = 50;
          int i;
          Timer timer;


    
    public LoadFrame() {
        initComponents();

    }

    private void initComponents() {

        pb = new javax.swing.JProgressBar(0, 100);

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        timer = new Timer(1000, new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                pb.setValue(pb.getValue()+30);
                timer.start();
                if(pb.getValue()>=100)
                {
                    timer.stop();
                    dispose();
                    new PainelPrincipal().setVisible(true);
                }
            }

        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(pb, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(pb, javax.swing.GroupLayout.DEFAULT_SIZE, 24, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new LoadFrame().setVisible(true);

            }

       
        });
    }


    private javax.swing.JProgressBar pb;


}

e o que eu quero é quando abrir esse JFrame, o JProgressBar jah inicia automaticamente, ainda vou conseguir solucionar isso!

o que tem no metodo PainelPrincipal???

[quote=vitoryudi]o que tem no metodo PainelPrincipal???

[/quote]

PainelPrincipal é a janela que ele vai abrir, quando o JProgressBar chega ao fim, por q???

Cara, e se vc criar uma classe chamada pbar

ai vc implementa ela na sua aplicação, com toda certeza vai dar certo!!

Cara no codigo que eu te passei, basta tu colocares no fim do codigo timer.start() e é garantido que funciona…

vlw, agora funcionou.

Obrigado pela atenção!!!