Tengo este codigo:
Código:
El cual uso para recorrer una JTable eh insertarla en la BD, como sabran, esta accion puede tomar algunos segundos, asi que quiero implementar una JProgressBar mientras se ejecuta esta accion.private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { d = new DAO(); int countB = 0; int countE = 0; jProgressBar1.setValue(0); jProgressBar1.setMinimum(0); jProgressBar1.setMaximum(jTable1.getRowCount()); jProgressBar1.setStringPainted(true); for(int i = 0; i<jTable1.getRowCount();i++){ r = new InsertarNuevoRepuesto(); for(int u = 0;u < jTable1.getColumnCount();u++){ if(u == 0){ r.setCodigoMovill(jTable1.getValueAt(i, u)+""); } if(u == 1){ r.setCodigo(jTable1.getValueAt(i, u)+""); } if(u == 2){ r.setDescripcion(jTable1.getValueAt(i, u)+""); } if(u == 3){ r.setMarca(jTable1.getValueAt(i, u)+""); } if(u == 4){ r.setStock((Integer)jTable1.getValueAt(i,u)); } if(u == 5){ String aux = jTable1.getValueAt(i, u)+""; aux = aux.replace(",","."); Double p = new Double(aux); r.setPrecioVentaUS(p); } if(u == 6){ r.setPrecioVentaPeso((Integer)jTable1.getValueAt(i, u)); } if(u == 7){ r.setPrecioVenta((Integer)jTable1.getValueAt(i, u)); if(d.insertarRepuesto(r)){ countB++; } else { countE++; } } } jProgressBar1.setValue(i); jProgressBar1.revalidate(); jProgressBar1.repaint(); } JOptionPane.showMessageDialog(null, "Se han insertado "+countB+" Items \n" +countE+" Items han presentado error"); }
El problema es que al ejecutarlo, la barra no se funciona, simplemente se queda en 0, y una vez terminada la accion llega a 100. No sé que será. En todos los ejemplos que encuentro en internet usan hilos para hacerlos funcionar.
Espero me puedan ayudar.