Tabla dentro de tabla.

Iniciado por KenoChile, 9 Agosto 2012, 23:41 PM

0 Miembros y 1 Visitante están viendo este tema.

KenoChile

Estimados...
Tengo un gran problema...

Paso a explicar lo mejor que pueda el caso.

Tengo un sistema que trabaja bajo el Precepto de capas (FactoryDAO), en el sistema existen los metodos getDataMod().FindAll() => Devuelve una lista de modulos  (int, string, int)
y el metodo getDataTur().FindAll(Fecha fini, Fecha, ffin, modulo) => devuelve una lista de turnos (int, fecha, fecha, hora, hora, funcionario) , en donde funcionario busca por metodos similares los datos de un funcionario (el relevante es un codigo  de identificacion alfanumerico con el que se puede recuepar el nombre por otros metodos  DAO)

Intento llenar 1 tabla (tblTurno) que contiene 2 campos: el modulo y una tabal interna (tblInterna) que contiene los datos del turno... sin embargo los datos nunca son traspasados al modelo de las tablas... y termina con un error de null poiner ( :¬¬ )

El código es este

Código (java) [Seleccionar]

public ConsultaTUR(Funcionario fun) {
       
            initComponents();
            funtemp=null;
            List<Object[]> datitos;
            TableColumnModel modeloColumna = this.tblTurno.getColumnModel();
            TableColumn columnaTabla;
            columnaTabla = modeloColumna.getColumn(0);
            columnaTabla.setMaxWidth(120);
            columnaTabla.setMinWidth(120);
           
            ArrayList<Modulo> modul = (ArrayList<Modulo>) FactoryDAO.getInstance().getDataMod().findAll();
           
            Reloj rel  =new Reloj();
            String fdb=rel.fechaDisp();
            String fechaini = rel.fechaDB();
            Date fini;
            String fechafin;
            SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
            java.util.Date utilDate = new java.util.Date();
            java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
            fini= sqlDate;
            Calendar cal = Calendar.getInstance();
            cal.setTime(fini);
            cal.add(Calendar.MONTH, 1);
            cal.add(Calendar.DATE, 5);
            fechafin = cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)>9?""+cal.get(Calendar.MONTH):"0"+cal.get(Calendar.MONTH))+"-"+(cal.get(Calendar.DAY_OF_MONTH)>9?""+cal.get(Calendar.DAY_OF_MONTH):"0"+cal.get(Calendar.DAY_OF_MONTH));
            Turno t;
            Modulo m;
            DefaultTableModel tblmod = new DefaultTableModel();
            JTable tblInterna = new JTable();
            DefaultTableModel tblmodInt= new DefaultTableModel();
        for (Iterator<Modulo> im = modul.iterator(); im.hasNext();) {
            m  = im.next();
            List<Turno> tur = FactoryDAO.getInstance().getDataTur().findAll(fechaini, fechafin, m);
            for (Iterator<Turno> it = tur.iterator(); it.hasNext();)
            {
                String funcio=null;
                t  = it.next();
//                JOptionPane.showMessageDialog(rootPane, t.getFunc().getNombres());
                if (t!=null)
                {
                    if (t.getFunc()!=null)
                    {
                      funcio = t.getFunc().getNombres();
                    }
                    System.out.println(t.getHora_ini().toString()+"     "+t.getHora_fin().toString()+"     "+funcio);
                    tblmodInt.addRow(new Object[] {t.getHora_ini().toString(),t.getHora_fin().toString(),funcio});
                }
             
                tblmod.addRow(new Object[]{m.getDescripcion(),tblInterna});
               
            }           
        }
            tblInterna.setModel(tblmodInt);
            this.tblTurno.setModel(tblmod);
            tblInterna.repaint();
            tblTurno.repaint();
           
    }

Incluso puse algunas salidas de consola para ver si estaba retornando los daos desde la capa de datos (DAO) y efectivamente los retorna... ¿Estoy mal enfocado? ¿Como debo hacer para llenar una sub-tabla?
Por su orientación muchísimas gracias!

Proteus1989

Intentalo creando un modelo de tabla (DefaultTableModel) y asignandoselo a la tabla con un setModel(model)

KenoChile

#2
uhm... es precisamente lo que se supone que el gran bloque blanco de código con colores de mas arriba hace... Pero no funciona
XD