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;
}
}