ProgressBar pisca muiiiito! Muito feio

Pessoal estou com um problema e não sei como resolver, o meu ProgressBar quando iniciado ele pisca muito, fica muito feio, eu estou utilizando o NetBeans, e tenho duas classes, eu preciso setar um parametro pela classe ProcessCliente que esta na classe principal que é o setValue(num) através do método setProgress, esta funcionando corretamente, mas esta muito feio por causa das piscadas, alguem pode me ajudar, o codigo esta logo abaixo, obrigado.

package src.br.com.principal;

import java.util.ArrayList;
import javax.swing.JOptionPane;
import src.br.com.process.ProcessCliente;

public class Principal extends javax.swing.JDialog {

public Principal(java.awt.Frame parent, boolean modal) {
    super(parent, modal);
    initComponents();

    initProgressBar();
}   

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    Object objCli = new Object();
    
    objCli = JComboBox.getValues()[sGComboBox2.getSelectedIndex()-1];
    
    try {
        ProcessCliente.getInstance().processDbCliente(objCli.toString(), this);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}                                      


private void initProgressBar() {
    progress.setMinimum(0);
    progress.setStringPainted (true);
    progress.setBorderPainted (true);
    progress.setValue(0);
}

public void setMaxProgress(int max) {
    progress.setMaximum (max);
}

public void setProgress(int num) {
    progress.setValue(num);
    progress.getUI().update(progress.getGraphics(),progress);
}

public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Principal(new javax.swing.JFrame(), true).setVisible(true);
        }
    });
}                

}

//Essa é a classe onde eu chamo o metodo da classe principal

package src.br.com.process;

import javax.swing.JProgressBar;
import src.br.com.principal.Principal;

public class ProcessCliente extends Cliente {

private static ProcessCliente instance;

private ProcessCliente() throws Exception{
    super();
}


public void processDbCliente(String cod, Principal p) throws Exception {
    try {
        String sql = "select * from cadcli where codigo="+cod;
        String conexao = "sun.jdbc.odbc.JdbcOdbcDriver";
        Class.forName(conexao).newInstance();
        Connection conn =   DriverManager.getConnection("jdbc:odbc:connectdbf");
        Statement stmt = conn.createStatement();
        ResultSet result = stmt.executeQuery(sql);
        
        int x=0;

        while (result.next()) {
            x++;
            p.setProgress(x);
        }

    } catch(Exception e) {
        System.out.println("Erro:..." + e);
    }
}

public static ProcessCliente getInstance() {
    if(instance == null) {
        try {
            instance = new ProcessCliente();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    return instance;
}

}

Evite duplicar posts. Ajude a manter o fórum organizado.