JProgressBar em Tela

4 respostas
Alchemist

Opa tudo bem ai pessoal, estou com uma aplicação aqui que eu gostaria de colocar uma JProgressBar enquanto ela carrega a tela eu peguei este exemplo:

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;

public class Main extends JPanel {

  JProgressBar pbar;

  static int min = 0;

  static int max = 100;

  public Main() {
    pbar = new JProgressBar();
    pbar.setMinimum(min);
    pbar.setMaximum(max);
    add(pbar);
    
    JFrame frame = new JFrame("Progress Bar Example");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setContentPane(this);
    frame.pack();
    frame.setVisible(true);

    for (int i = min; i <= max; i++) {
      final int percent = i;
      try {
        SwingUtilities.invokeLater(new Runnable() {
          public void run() {
            updateBar(percent);
          }
        });
        Thread.sleep(100);
      } catch (InterruptedException e) {
      }
    }
  }

  public void updateBar(int newValue) {
    pbar.setValue(newValue);
  }

  public static void main(String args[]) {
    new Main();
  }
}

O problema é que eu não sei como quando a minha tela esta toda carregada e pronta para ser visualizada:s

Como eu poderia implementar a minha classe com este examplo ?

4 Respostas

lucamartins

Pega este trecho de código…

for (int i = min; i <= max; i++) {  
       final int percent = i;  
       try {  
         SwingUtilities.invokeLater(new Runnable() {  
           public void run() {  
             updateBar(percent);  
           }  
         });  
         Thread.sleep(100);  
       } catch (InterruptedException e) {  
       }  
     }  
   }

e coloca assim:

new Thread( new Runnable() {
            public void run() {
                  //Código lá de cima.
            }
        } ).start();
Alchemist

rsrsr cara n ajudou em nada a thread não é o problema… como é que eu sei que o meu JFrame já foi construido e mais importante como eu vou calcular o quanto a minha JProgressBar vai caminhar…

lucamartins

Uai, de acordo com seu código este seu ProgressBar é tipo pra encher linguiça num é?

Mas assim, vc vai ter que encontrar uma métrica para somar este progressbar, por exemplo, sempre antes de uma chamada de um metodo incrementa “1”.

Acho que num tinha entendido direito, vc quer que este progressbar seja preenchido enquanto carrega o JFrame? Normalmente, após o momento que vc exibe o JFrame ele já tá pronto pra balada.

No NetBeans, quando vc cria uma classe JFrame, ele inicializa todos os componentes no método initComponents.

Alchemist

A Ideia é esta mesma… o problema é saber quando o Jframe já esta pronto!

Criado 6 de agosto de 2009
Ultima resposta 6 de ago. de 2009
Respostas 4
Participantes 2