Fala pessoal, estou com um problema com a utilização do SwingWorker no codigo abaixo:
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.SwingWorker;
public class Numerar implements Runnable {
JFrame jf = new JFrame("Numerando...");
JPanel jp = new JPanel();
JProgressBar carregador = new JProgressBar();
public void run() {
final SwingWorker worker = new SwingWorker() {
protected Object doInBackground() throws Exception {
for(int i=0; i <= 100000; i++){
System.out.println("Numero: "+i);
}
return null;
}
protected void done() {
super.done();
JOptionPane.showMessageDialog(null,
"O processo foi concluido com sucesso!", "Aviso",
JOptionPane.INFORMATION_MESSAGE);
jf.dispose();
}
};
worker.execute();
carregador.setValue(worker.getProgress());
carregador.setIndeterminate(true);
carregador.setStringPainted(true);
carregador.setPreferredSize(new Dimension(200, 20));
jp.setBorder(BorderFactory.createTitledBorder("Carregando..."));
jp.add(carregador);
jf.getContentPane().add(jp);
jf.pack();
jf.setResizable(false);
jf.setVisible(true);
}
public static void main(String[] args) {
new Numerar().run();
}
}
Queria saber como fazer o JProgressBar mostrar o andamento do processo, e como seria para fazer o SwingWorker parar quando ocorrer uma determinada ação.
Desde ja, agradeço.