Boa noite,
Ao acionar o botão bt,teoricamente o mesmo irá através da classe liga,ir preenchendo a barra JProgress aos poucos,no exemplo até 30%.
O problema é que primeiro executa os Treads.sleep e já vai direto pro 30%.
Alguém já passou por situação semelhante?
Desde já agradeço.
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Barra extends JFrame{
JFrame jf;
JProgressBar jp;
JButton bt;
void Barra(){
jf = new JFrame("Motores INICIO 28/02/2011");
jf.setLocation(277,350);
jf.setLayout(null);
jf.getContentPane().setBackground(Color.YELLOW);
jf.setSize(777, 333);
jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
bt = new JButton();
jf.add(bt);
bt.setBounds(40,40, 230, 50);
bt.addActionListener(new liga());
jp = new JProgressBar();
jf.add(jp);
jp.setBounds(440,40, 230, 50);
jp.setMinimum(0);
jp.setMaximum(100);
jp.setStringPainted(true);
jf.setVisible(true);
}
public class liga implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
System.out.println("OI");
try {
jp.setValue(10); // pinta a JProgress em 10%
Thread.sleep( 500 );
jp.setValue(20); // pinta a JProgress em 20%
Thread.sleep( 500 );
jp.setValue(30); // pinta a JProgress em 30%
} catch (InterruptedException e) {
e.printStackTrace();
} // coloca a "thread" para "dormir" 1 segundo
}
}
public static void main(String args[]){
Barra br = new Barra();
br.Barra();
}
}
