Foro de elhacker.net

Programación => Java => Mensaje iniciado por: KenoChile en 9 Agosto 2012, 23:41 pm



Título: Tabla dentro de tabla.
Publicado por: KenoChile en 9 Agosto 2012, 23:41 pm
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
  1. public ConsultaTUR(Funcionario fun) {
  2.  
  3.            initComponents();
  4.            funtemp=null;
  5.            List<Object[]> datitos;
  6.            TableColumnModel modeloColumna = this.tblTurno.getColumnModel();
  7.            TableColumn columnaTabla;
  8.            columnaTabla = modeloColumna.getColumn(0);
  9.            columnaTabla.setMaxWidth(120);
  10.            columnaTabla.setMinWidth(120);
  11.  
  12.            ArrayList<Modulo> modul = (ArrayList<Modulo>) FactoryDAO.getInstance().getDataMod().findAll();
  13.  
  14.            Reloj rel  =new Reloj();
  15.            String fdb=rel.fechaDisp();
  16.            String fechaini = rel.fechaDB();
  17.            Date fini;
  18.            String fechafin;
  19.            SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
  20.            java.util.Date utilDate = new java.util.Date();
  21.            java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
  22.            fini= sqlDate;
  23.            Calendar cal = Calendar.getInstance();
  24.            cal.setTime(fini);
  25.            cal.add(Calendar.MONTH, 1);
  26.            cal.add(Calendar.DATE, 5);
  27.            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));
  28.            Turno t;
  29.            Modulo m;
  30.            DefaultTableModel tblmod = new DefaultTableModel();
  31.            JTable tblInterna = new JTable();
  32.            DefaultTableModel tblmodInt= new DefaultTableModel();
  33.        for (Iterator<Modulo> im = modul.iterator(); im.hasNext();) {
  34.            m  = im.next();
  35.            List<Turno> tur = FactoryDAO.getInstance().getDataTur().findAll(fechaini, fechafin, m);
  36.            for (Iterator<Turno> it = tur.iterator(); it.hasNext();)
  37.            {
  38.                String funcio=null;
  39.                t  = it.next();
  40. //                JOptionPane.showMessageDialog(rootPane, t.getFunc().getNombres());
  41.                if (t!=null)
  42.                {
  43.                    if (t.getFunc()!=null)
  44.                    {
  45.                      funcio = t.getFunc().getNombres();
  46.                    }
  47.                    System.out.println(t.getHora_ini().toString()+"     "+t.getHora_fin().toString()+"     "+funcio);
  48.                    tblmodInt.addRow(new Object[] {t.getHora_ini().toString(),t.getHora_fin().toString(),funcio});
  49.                }
  50.  
  51.                tblmod.addRow(new Object[]{m.getDescripcion(),tblInterna});
  52.  
  53.            }          
  54.        }
  55.            tblInterna.setModel(tblmodInt);
  56.            this.tblTurno.setModel(tblmod);
  57.            tblInterna.repaint();
  58.            tblTurno.repaint();
  59.  
  60.    }
  61.  
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!


Título: Re: Tabla dentro de tabla.
Publicado por: Proteus1989 en 10 Agosto 2012, 03:26 am
Intentalo creando un modelo de tabla (DefaultTableModel) y asignandoselo a la tabla con un setModel(model)


Título: Re: Tabla dentro de tabla.
Publicado por: KenoChile en 10 Agosto 2012, 16:31 pm
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