Não deixe seu catch vazio coloque ef.printStackTrace() para ver se deu erros
E outra coisa
Se voce ta fazendo um for de 0 a 100 entao por que a cada iteração você pega o valor da JProgressBar e soma um? Seria mais fáçil colocar o valor de i,por que se alguém ver apenas essa parte do código pode pensar que você já tem um valor pré defenido e dificulta entender o código.
ViniGodoy
Você está atualizando a JProgressBar da mesma thread do Swing. A thread do swing é a mesma que dispara os eventos do botão e é a mesma que manda a JProgressBar se repintar. Se tudo ficar na mesma thread, a progressbar não vai ser repintada até o evento do botão terminar.
Tente disparar esse código numa outra thread, como no exemplo abaixo:
new Thread() {
@Override
public void run() {
for (int i = 1; i <= 100; i++) {
pb.setValue(pb.getValue()+1);
try {
Thread.sleep(20);
} catch (Exception ef) {}
}
}