Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > PROBLEMAS EN UN BUCLE FOR

Hola compañeros:

Tengo un método que interactura sobre un Jtable (tblTabla2). El cometido es el siguiente:
Comprueba qu el Jtable tenga un registro o varios.
Cuando hay varios registros en el Jtable, mira en la columna 9 si los nº son iguales o no
Dependiendo de si son iguales o no anotará en la columna 1 un dato que tambien está subrodinado a lo anotado en la columna 0.

El método es el siguiente:

void repasaReparto(){
igual = "SI";
// Cuenta los registros
int i = 0;
for (i = 0; i < tblTabla2.getRowCount(); i++) {

}
//Para cuando el JTabla2, tiene más de 1 registro
if (i>1) {
//Carga el valor de la fila 1, de la columna 9 (TAMAÑO) en la variable repartoS
String repartoS = "";
String repartoSotras = "";
int filasel = 0;
modelo20 = (DefaultTableModel) tblTabla2.getModel();
repartoS = (String) modelo20.getValueAt(filasel, 9);
//Compara el valor de las otras fila con la 1ª. Carga el valor de las demás filas
//(repartoSotras)y lo compara con repartoS
int i1 = 0;
for (i1 = 0; i1 < tblTabla2.getColumnCount(); i1++) {
repartoSotras = "";
repartoSotras = (String) modelo20.getValueAt(i1, 9);
//Caso de las dos variables iguales (NO HAY REPARTO)
if (repartoS.equals(repartoSotras)) {
igual = "SI";
}
//Caso de las dos variables desiguales (HAY REPARTO)
else {
igual = "NO";
break;
}
}
JOptionPane.showMessageDialog(null, "2" );
}
//Para cuando el JTabla2, tiene un registro
else{

}

JOptionPane.showMessageDialog(null, "3");


// Ahora ya sabemos si el JTable es CON/SIN REPARTO (si la variable igual = "NO"), por //tanto a renombrar el dato de la columna 1 (TRABAJO)

//Caso de HAY REPARTO
if (igual.equals("NO")) {
//Creo un bucle para capturamos la actividad en la variable va48, formo el dato del trabajo en la va49 y lo inserto en el JTabla2
for (i = 0; i < tblTabla2.getColumnCount(); i++) {
va48 = (String) modelo20.getValueAt(i, 0);
if (va48.equals("FRUTICOLA")) {
va48 = "FRUTIC.";
}
if (va48.equals("HORTICOLA")) {
va48 = "HUERTA";
}
va49 = "FUMIGAR ";
va49 = va49 + va48;
va49 = va49 + " CON REPARTO";
JOptionPane.showMessageDialog(null, "El valor de va49 es: "+va49);
tblTabla2.setValueAt(va49, i, 1);

}
}
//Caso de NO HAY REPARTO
if (igual.equals("SI")) {
//Creo un bucle para capturamos la actividad en la variable va48, formo el dato del trabajo en la va49 y lo inserto en el JTabla2
for (i = 0; i < tblTabla2.getColumnCount(); i++) {
va48 = (String) modelo20.getValueAt(i, 0);
if (va48.equals("FRUTICOLA")) {
va48 = "FRUTIC.";
}
if (va48.equals("HORTICOLA")) {
va48 = "HUERTA";
}
va49 = "FUMIGAR ";
va49 = va49 + va48;
va49 = va49 + " SIN REPARTO";
JOptionPane.showMessageDialog(null, "El valor de va49 es: "+va49);
tblTabla2.setValueAt(va49, i, 1);

}
}
}

El 1º for es para saber si tiene 1 registro o más. Entrando en el if (i>1) {..., se crean los string, String repartoS = ""; y String repartoSotras = "";. El 1º anota el valor del registro 0 y el segun carga el valor mediante el bucle for (i1 = 0; i1 < tblTabla2.getColumnCount(); i1++) {...

La variable igual, se le dá en valor de "SI" y "NO", dependiendo de si son iguales o no.

El problema surge y por más que me caliento no veo el porque, que cuando son datos iguales y por tanto la variable iguales toma el valor "SI", se corta el método despues del bucle for es como si saliera del método, no muestra ni los JoptionPane. 2
Y encambio cuando son desiguales, todo funciona correctamente.

Haber si me podeis ver donde está el error.

Saludos

octubre 2, 2019 | Registered Commentertono2