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.
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