JProgressBar

3 respostas
R

Ola pessoal, minha duvida é que ainda não entendi como atualizar uma jprogressbar dentro de uma thread. Alguem pode me passar com mais detalhes como a thread deve ser feita e quais os comando para atualizar a progressBar?

3 Respostas

davidbuzatto

http://www.guj.com.br/posts/list/37596.java

Ao invez de atualizar o text field vc atualiza a barra de progresso. É só adaptar o código.

Falow!

R

e como fica os comandos pra pra atualizar a jtable? sera que vc tem um exemplo melhor explicado?

T+

silva.fernandes

Acho q isso pode te ajudar, é claro q tem muito q ser melhorado mas ja da pra vc ter uma ideia de como funciona sua duvida …

import java.awt.Dimension;

import java.awt.Rectangle;

import java.awt.Toolkit;
import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JProgressBar;

import javax.swing.JWindow;

import javax.swing.SwingUtilities;

public class Progress extends JWindow {

private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JLabel jLabel = null;
private JProgressBar jProgressBar = null;
protected int m_min = 0;
protected int m_max = 100;
protected int m_counter = 0;





public Progress() {
	initialize();	
	acaoProgress();

}

	

public void initialize() {
	this.setSize(349, 282);

	Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
	Dimension size = getSize();
	
	if (size.width > screenSize.width)
		size.width = screenSize.width;
	
	if (size.height > screenSize.height)
		size.height = screenSize.height;
	
	this.setLocation((screenSize.width - size.width) / 2, (screenSize.height - size.height) / 2);
	
	this.setContentPane(getJContentPane());

}

/**
Inicializa a Label
 */
private JPanel getJContentPane() {
	if (jContentPane == null) {
		jLabel = new JLabel();
		jLabel.setBounds(new Rectangle(105, 65, 156, 128));
		jLabel.setText("Carregando o sistema ....");
		jContentPane = new JPanel();
		jContentPane.setLayout(null);
		jContentPane.setBounds(new Rectangle(5, 5, 10, 10));
		jContentPane.add(getJProgressBar(), null);
		jContentPane.add(jLabel, null);
	
		
	}
	return jContentPane;
}




/**
 * Este método inicializa a ProgressBar	
 * 		 
 */
private JProgressBar getJProgressBar() {
	if (jProgressBar == null) {
		jProgressBar = new JProgressBar();
		jProgressBar.setBounds(new Rectangle(0, 260, 349, 21));
		jProgressBar.setMinimum(m_min);
		jProgressBar.setMaximum(m_max);
		jProgressBar.setStringPainted(true);
	}
	return jProgressBar;
}

	
/*
 * Este método Finaliza a Progress
 */
public void finalzaProgress(){
	Progress p = new Progress();
	p.setVisible(false);
	dispose();
}


public void acaoProgress(){
	
    Thread runner = new Thread() {
        public void run() {
          m_counter = m_min;
          while (m_counter <= m_max) {
            Runnable runme = new Runnable() {
              public void run() {
                jProgressBar.setValue(m_counter);
              }
            };
            SwingUtilities.invokeLater(runme);
            m_counter++;
            try { 
              Thread.sleep(10); 
            } 
            catch (Exception ex) {}
          }
        }
      };
      runner.start();
	
}

public static void main(String[] args) {
	Progress p = new Progress();	
	p.setVisible(true);
	
	
    for (int i = 0; i < 50000; i++) { //faz a simulação de algo 
        System.out.println(i);			//carregando

	}

    p.finalzaProgress(); //finaliza todo o processo
    



}

}

Criado 31 de julho de 2006
Ultima resposta 31 de jul. de 2006
Respostas 3
Participantes 3