Barra de progresso

13 respostas
M

Pessoal, uma duvida básica, fiz no netbeans, usando o paleta, botei uma barra de progresso e um botão OK.
Como faço para a barra carregar sozinha? pois…

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: barra.setMinimum(0); barra.setMaximum(100); barra.setValue(50); }

isso eu coloquei dentro do evento do botão, mas eu queria que a barra carregasse sozinha, mostrando a porcentagem dentro dela, como eu faço??

obrigado, amigos!!

13 Respostas

carlos.e.a

Acho que devem haver uns 300 topicos sobre isso por aqui…chutando assim por baixo…

M

sim, isso eu sei, porem não consegui fazer o que eu queria, por isso perguntei…

G

Amigo,

Sou novo em Java e nunca utilizei essa barra de progresso, mais talvez vc não teria que fazer os calculos e ir alterando o valor do atributo

barra.setValue(50);

ele começa com 0 e vai evoluindo até chegar ao 100 , não seria isso ?

Veja um exemplo no site:
http://www.sergio.pro.br/trabalhos/10_curso_jbuilder_aula_02.pdf

walissongpi
public void atualiza(int valor){
         jProgressBar1.setValue(valor);   
    }

você tem que usar Thread...

new Thread(){ 
       public void run(){
         for (int i = 0; i <= 100; i++) {

                  atualiza(i);
                  try{
                      Thread.sleep(100);
                  }catch(Exception e){
                      System.out.println(e);
                  }

        }  
       }
}.start();

ajudou?

M

ajudou sim, eu entendi, mas onde ponho, a parte do Thread esta dando erro, sera que é porque tem um evento de botao?

walissongpi

Coloque seu código pra eu dar uma olhada…

walissongpi
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        barra.setMinimum(0);
        barra.setMaximum(100);

    }

esses valores você deve definir logo depois da criação o objeto (barra) e não dentro do evento.

M

só queria que quando eu apertasse o botao(linha 13) a barra fosse carregando de 0 a 100 %, tem uma barra que puxei da paleta...
esse é o codigo (é bem simples!)

package view;

public class NewJFrame extends javax.swing.JFrame {    
    
    public NewJFrame() {
        initComponents();
        setLocationRelativeTo(this);         
    }   

    @SuppressWarnings("unchecked")
                       

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:                                             
    }                                        

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }   
    
    // Variables declaration - do not modify                     
    private javax.swing.JProgressBar barra;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    // End of variables declaration                   
}
M

Pronto já resolvi!
walissongpi MUITO OBRIGADO VOCE AJUDOU MUITO MESMO!!

e...

carlos.e.a pode comer seus 300 posts com sal!

package view;

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

public class NewJFrame extends javax.swing.JFrame {
    
    private Timer objTimer;
    private int a;
    
    public NewJFrame() {
        initComponents();
        setLocationRelativeTo(this);         
    }   

    @SuppressWarnings("unchecked")
   
    private void formWindowOpened(java.awt.event.WindowEvent evt) {
        // TODO add your handling code here:
        objTimer = new Timer(200, new ClasseTimer());
        objTimer.start();
    }

    public class ClasseTimer implements ActionListener{

        @Override
        public void actionPerformed(ActionEvent e) {
            
            a=pgbbarra.getValue();
            if(a<100){
                a++;
                pgbbarra.setValue(a);
            }
            else{
                objTimer.stop();
                fechar();
            }
        }        
    }
    
    private void fechar(){
        this.dispose(); 
    }
   
    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    } 
    
    
    // Variables declaration - do not modify
    private javax.swing.JLabel jLabel3;
    private javax.swing.JProgressBar pgbbarra;
    // End of variables declaration
}
carlos.e.a

Desculpe amigo mas se voce nao percebe que esta ERRADO em postar uma pergunta que foi postada UM TROLHAO de vezes no forum com varias respostas de como resolver entao o problema é mais serio do que imagino. Leia as regras do forum e use a busca em vez de vir com falta de respeito pra cima de mim.

M

chora não amigo, toma um copinho de leite e vai dormir que depois passa!

carlos.e.a

Ta certo, farei isso.

walissongpi

Myshel:
Pronto já resolvi!
walissongpi MUITO OBRIGADO VOCE AJUDOU MUITO MESMO!!

:slight_smile: :smiley:

Criado 19 de dezembro de 2011
Ultima resposta 20 de dez. de 2011
Respostas 13
Participantes 4