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?
JProgressBar
R
3 Respostas
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+
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