Foros del Web » Programación para mayores de 30 ;) » Java »

problema con Jtable

Estas en el tema de problema con Jtable en el foro de Java en Foros del Web. hola muy buenas tengo un inconveniente con una tabala lo que pasa es que me muestra los datos de BD que ya esta vinculada y ...
  #1 (permalink)  
Antiguo 21/02/2011, 10:02
 
Fecha de Ingreso: enero-2011
Ubicación: Bogota, Colombia
Mensajes: 81
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta problema con Jtable

hola muy buenas
tengo un inconveniente con una tabala lo que pasa es que me muestra los datos de BD que ya esta vinculada y me muestra muy bien el problema es que tengo una columna con valores numericos quiero sumar todos estos valores y colocar la suma total en un jtexfield agradesco la ayuda

nota: con sql no me funciona la funcion suma porque tengo anidadadas varias consulta con la funcion UNIN ALL por lo tanto nesesito trabajar este total es en el propio codigo de java gracias adios
  #2 (permalink)  
Antiguo 21/02/2011, 13:12
Avatar de jhonmelguizo  
Fecha de Ingreso: enero-2008
Ubicación: Medellín - Colombia
Mensajes: 264
Antigüedad: 16 años, 3 meses
Puntos: 6
De acuerdo Respuesta: problema con Jtable

Hola, puedes recorrer el JTable una vez esté cargado con la información, por ejemplo:

Código JAVA:
Ver original
  1. int suma = 0;
  2. int columnaInt = 4;//Suponiendo que en la columna 4 están los datos que necesitas sumar
  3.  
  4. for(int i = 0; i <= jtable.getRowCount(); i++){
  5.      columnaInt += Integer.parseInt(jtable.getValueAt(i, columnaInt).toString());
  6. }
  #3 (permalink)  
Antiguo 22/02/2011, 07:57
 
Fecha de Ingreso: enero-2011
Ubicación: Bogota, Colombia
Mensajes: 81
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Respuesta: problema con Jtable

hola si grcais jhonmelguizo por el aporte es muy bueno pero tengo una inquietud te voy a pasar este codigo en el que ya implemente tu solucion y tu me dices donde lo coloco cuando la tabla ya este llena el problema es que me sale un error de excepcion

Código:
 try {
        
            int suma =0;
            int columnaInt = 6;
           

            ArrayList<Administrador> listaContactos = Administrador.listarTodos();
            Vector<String> columnasTabla = new Vector<String>();
            columnasTabla.add("Codigo");
            columnasTabla.add("Nombres");
            columnasTabla.add("Apellidos");
            columnasTabla.add("Oficio");
            columnasTabla.add("Total Pares");
            columnasTabla.add("Total Neto");
           // columnasTabla.add("Telefono");
           // columnasTabla.add("Email");
           // columnasTabla.add("Direccion");
          Vector<Vector> filasTabla = new Vector<Vector>();
            for (Administrador contactoEncontrado : listaContactos) {
                Vector<String> personaComoFila = contactoEncontrado.convierteEnVector();
                filasTabla.add(personaComoFila);
               
            }

          
 
            DefaultTableModel datosTabla = new DefaultTableModel(filasTabla, columnasTabla);
            tblNomina.setModel(datosTabla);       

            if (tblNomina.getRowCount() > 0)
            {
                 for(int i = 0; i <= datosTabla.getRowCount(); i++)
            {     columnaInt += Integer.parseInt(datosTabla.getValueAt(i, columnaInt).toString());
                suma=suma+i;
                JOptionPane.showMessageDialog(this, i);
            }
                 
            }
              
        } catch (Exception error) {
            //JOptionPane.showMessageDialog(this, "Registro satisfactorio", "Operacion Exito",JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(this, error);

        }
le coloque una condicion para que despues de que este lleno me realize la sumatoria pero no me da me podiras ayudar un poquito gracias
  #4 (permalink)  
Antiguo 22/02/2011, 08:19
Avatar de jhonmelguizo  
Fecha de Ingreso: enero-2008
Ubicación: Medellín - Colombia
Mensajes: 264
Antigüedad: 16 años, 3 meses
Puntos: 6
De acuerdo Respuesta: problema con Jtable

Hola Martín,

Si el contador i comienza desde cero entonces compara diciendo que mientras i sea menor que los datos de la tabla, así:

for(int i = 0; i < datosTabla.getRowCount(); i++){}

Si no te funciona, muestranos la excepción que te arroja.

Saludos...
  #5 (permalink)  
Antiguo 22/02/2011, 08:31
 
Fecha de Ingreso: enero-2011
Ubicación: Bogota, Colombia
Mensajes: 81
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Respuesta: problema con Jtable

aquie te muestro el error de exception
java.lang.ArrayIndexOutBoundsException: 21255>=6

mira algo curioso en la columna 6 fila 1 tengo ese numero el que muetra en la excepcion menos 5 osea 2125o nose que sumatoria estara haciendo, ha y ya hice lo que me pedistes aqui te doy de nuevo el codigo y muchas pero muchas gracias por tu ayuda

Código:
try {
        
            int suma =0;
            int columnaInt = 5;
           

            ArrayList<Administrador> listaContactos = Administrador.listarTodos();
            Vector<String> columnasTabla = new Vector<String>();
            columnasTabla.add("Codigo");
            columnasTabla.add("Nombres");
            columnasTabla.add("Apellidos");
            columnasTabla.add("Oficio");
            columnasTabla.add("Total Pares");
            columnasTabla.add("Total Neto");
           // columnasTabla.add("Telefono");
           // columnasTabla.add("Email");
           // columnasTabla.add("Direccion");
          Vector<Vector> filasTabla = new Vector<Vector>();
            for (Administrador contactoEncontrado : listaContactos) {
                Vector<String> personaComoFila = contactoEncontrado.convierteEnVector();
                filasTabla.add(personaComoFila);
               
            }

          
 
            DefaultTableModel datosTabla = new DefaultTableModel(filasTabla, columnasTabla);
            tblNomina.setModel(datosTabla);       

            if (tblNomina.getRowCount() > 0)
            {
                 for(int i = 0; i < datosTabla.getRowCount(); i++)
            {     columnaInt += Integer.parseInt(datosTabla.getValueAt(i, columnaInt).toString());
                suma=suma+i;
                JOptionPane.showMessageDialog(this, suma);
            }
                 
            }
              
        } catch (Exception error) {
            //JOptionPane.showMessageDialog(this, "Registro satisfactorio", "Operacion Exito",JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(this, error);

        }
  #6 (permalink)  
Antiguo 22/02/2011, 08:38
Avatar de jhonmelguizo  
Fecha de Ingreso: enero-2008
Ubicación: Medellín - Colombia
Mensajes: 264
Antigüedad: 16 años, 3 meses
Puntos: 6
Información Respuesta: problema con Jtable

Martín,

Código JAVA:
Ver original
  1. for(int i = 0; i < datosTabla.getRowCount(); i++)
  2.             {     columnaInt += Integer.parseInt(datosTabla.getValueAt(i, columnaInt).toString());
  3.                 suma=suma+i;
  4.                 JOptionPane.showMessageDialog(this, suma);
  5.             }

Recuerda que la variable entera columnaInt sólo es para especificar la posición de la columna que contiene los datos a sumar, debe quedar así:

Código JAVA:
Ver original
  1. for(int i = 0; i < datosTabla.getRowCount(); i++)
  2.             {  
  3.                 suma += Integer.parseInt(datosTabla.getValueAt(i, columnaInt).toString());
  4.                 JOptionPane.showMessageDialog(this, suma);
  5.             }

Me cuentas...
  #7 (permalink)  
Antiguo 22/02/2011, 08:42
 
Fecha de Ingreso: enero-2011
Ubicación: Bogota, Colombia
Mensajes: 81
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: problema con Jtable

si tenias toda la razon esta super muchas pero muchas gracias por tu ayuda aveces no velo las cosas tan asi y tu me distes una explicacin muy profesional gracias y te aclaro que esta funcionando super

Etiquetas: jtable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:02.