Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/06/2007, 08:25
Avatar de SeriketZu
SeriketZu
 
Fecha de Ingreso: septiembre-2006
Ubicación: Mendoza, Argentina
Mensajes: 78
Antigüedad: 17 años, 8 meses
Puntos: 0
JTable con TableModel y Classes

Hola a todos!
Les cuento, estube viendo en Internet varios ejemplos de JTable con TableModels, hice uno y funcionó a la perfección. Ahora quiero hacer uno más complejo y los vectores se llenan, pero los datos no aparecen en pantalla

Paso a explicar... primero las clases:

Código:
public class Actividad {
  private int nro;
  private Date fechaEstimada;
  private Date fechaReal;
  private Operador operadorEncargado;
  private Vector ayudantes; //Vector de objetos Operador
  private Máquina máquina;
  private byte prioridad;
  private byte estado;
  private String notas;
  private Vector trabajos; //Vector de objetos Trabajo
}

public class Operador {
  private int id;
  private String nombre;
  private String login;
  private String password;
}

public class Trabajo {
  private int nro;
  private Parte parte;
  private byte estado;
  private String notas;
  private Vector mantenimientos; //Vector de objetos MantenimientoXTrab
}

public class MantenimientoXTrab {
  private int nro;
  private int id;
  private String nombre;
  private String descripción;
  private int duraciónEstimada;
  private int duraciónReal;
  private Vector herramientas; //Vector de objetos Herramienta
  private Vector componentes; //Vector de objetos ComponenteXCant
}

public class Herramienta {
  private int id;
  private String nombre;
  private String descripción;
  private int stock;
}

public class ComponenteXCant{
  private int id;
  private String nombre;
  private String descripción;
  private int stock;
  private int cantidad;
}
Para llenar 3 JTables, uso 3 TableModel:
  • jTableOrden <-- TablaActividades
  • jTableActividad <-- TablaTrabajos
  • jTableTrabajo <-- TablaMantenimientos

Código:
public class TablaActividades extends AbstractTableModel {
  
  private String columnas[];
  private Vector datos = new Vector();
  
  public TablaActividades() {
    establecerColumnas();
  }
  
  private void establecerColumnas(){
    columnas = new String[6];
    columnas[0] = "Nro";
    columnas[1] = "Máquina";
    columnas[2] = "FechaInicio";
    columnas[3] = "OperadorEncargado";
    columnas[4] = "Prioridad";
    columnas[5] = "Notas";
  }

....
}

public class TablaTrabajos extends AbstractTableModel {
  
  private String columnas[];
  //private LinkedList datos = new LinkedList();
  private Vector datos = new Vector();
  
  public TablaTrabajos() {
    establecerColumnas();
  }
  
  private void establecerColumnas(){
    columnas = new String[5];
    columnas[0] = "Nro";
    columnas[1] = "Parte";
    columnas[2] = "FechaInicio";
    columnas[3] = "DuraciónTotal";
    columnas[4] = "Notas";
  }

....
}

public class TablaMantenimientos extends AbstractTableModel {
  
  private String columnas[];
  //private LinkedList datos = new LinkedList();
  private Vector datos = new Vector();
  
  public TablaMantenimientos() {
    establecerColumnas();
  }
  
  private void establecerColumnas(){
    columnas = new String[5];
    columnas[0] = "Nro";
    columnas[1] = "Mantenimiento";
    columnas[2] = "DuraciónEstimada";
    columnas[3] = "Herramientas";
    columnas[4] = "Componentes";  
  }

....
}
Una vez que he completado los vectores, los asigno a los TableModel correspondientes y asigno estos a sus respectivos jTable pero no logro visalizar los datos... ¿Cómo puedo hacer para indicar qué dato mostrar en cada columna para que de esta manera los muestre en pantalla?

Código:
    tablaActividades = new TablaActividades();
    tablaTrabajos = new TablaTrabajos();
    tablaMantenimientos = new TablaMantenimientos();
    tablaActividades.setDatos(vectorActividades);
    tablaTrabajos.setDatos(vectorActividades.getVectorTrabajos());
    tablaMantenimientos.setDatos(vectorActividades.getVectorTrabajos().getVectorMantenimientos());
    jTableOrden.setModel(tablaActividades);
    jTableActividad.setModel(tablaTrabajos);
    jTableTrabajo.setModel(tablaMantenimientos);
Gracias, saludos.