Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/07/2013, 10:34
Avatar de drakk92
drakk92
 
Fecha de Ingreso: julio-2013
Ubicación: cali
Mensajes: 25
Antigüedad: 10 años, 10 meses
Puntos: 1
Llamar un TableModel desde otra clase

Hola, quisiera hacer una pregunta, tengo un metodo "Cargar" el cual me asigna unos titulos a mi tabla, y despues añade los registros a esta, para cada titulo un registro.

Código Java:
Ver original
  1. public void cargar() {
  2.  
  3.         String[] titulos = {"Cedula", "Nombre", "Apellido", "Edad", "Sexo", "Telefono", "Direccion", "Cargo"};
  4.         String[] registros = new String[8];
  5.  
  6.         String sql = "SELECT * FROM Empleados";
  7.         DefaultTableModel model = new DefaultTableModel(null, titulos);
  8.  
  9.         conectar cc = new conectar();
  10.         Connection cn = cc.conexion();
  11.         try {
  12.             Statement st = cn.createStatement();
  13.             ResultSet rs = st.executeQuery(sql);
  14.  
  15.             while (rs.next()) {
  16.                 registros[0] = rs.getString("Cedula_e");
  17.                 registros[1] = rs.getString("Nombre_e");
  18.                 registros[2] = rs.getString("Apellido_e");
  19.                 registros[3] = rs.getString("Edad_e");
  20.                 registros[4] = rs.getString("Sexo_e");
  21.                 registros[5] = rs.getString("Telefono_e");
  22.                 registros[6] = rs.getString("Direccion_e");
  23.                 registros[7] = rs.getString("Cargo_e");
  24.  
  25.                 model.addRow(registros);
  26.             }
  27.  
  28.             t_datos.setModel(model);
  29.  
  30.         } catch (SQLException ex) {
  31.             Logger.getLogger(ing_emp.class.getName()).log(Level.SEVERE, null, ex);
  32.         }
  33.  
  34.     }

Todo funciona bien, excepto una cosa, ese metodo esta dentro de un jframe, obviamente no es optimo hacer eso, lo que yo quiero es poner ese metodo en otra clase y hacer llamado desde el jframe para que lo use.

A mi se me ocurriria hacer esto, dentro del jframe:

Código Java:
Ver original
  1. public JTable Tabla(){
  2.         return t_datos;
  3.     }


y hacer llamado de la tabla de la siguiente forma en otra clase:

Código Java:
Ver original
  1. public void Cargar() {
  2.         String[] titulos = {"Cedula", "Nombre", "Apellido", "Edad", "Sexo", "Telefono", "Direccion", "Cargo"};
  3.         String[] registros = new String[8];
  4.  
  5.         String sql = "SELECT * FROM Empleados";
  6.         DefaultTableModel model = new DefaultTableModel(null, titulos);
  7.  
  8.         ing_emp ie = new ing_emp();
  9.         JTable s = ie.Tabla(); // aqui hago llamado del constructor que hice en el jframe
  10.         try {
  11.             Statement st = cn.createStatement();
  12.             ResultSet rs = st.executeQuery(sql);
  13.  
  14.             while (rs.next()) {
  15.                 registros[0] = rs.getString("Cedula_e");
  16.                 registros[1] = rs.getString("Nombre_e");
  17.                 registros[2] = rs.getString("Apellido_e");
  18.                 registros[3] = rs.getString("Edad_e");
  19.                 registros[4] = rs.getString("Sexo_e");
  20.                 registros[5] = rs.getString("Telefono_e");
  21.                 registros[6] = rs.getString("Direccion_e");
  22.                 registros[7] = rs.getString("Cargo_e");
  23.                 model.addRow(registros);
  24.             }
  25.  
  26.             s.setModel(model);
  27.  
  28.         } catch (SQLException ex) {
  29.             Logger.getLogger(ing_emp.class.getName()).log(Level.SEVERE, null, ex);
  30.         }
  31.     }


Este boton va dentro del JFrame con ese hago el test del metodo Cargar.

Código Java:
Ver original
  1. private void CargarActionPerformed(java.awt.event.ActionEvent evt) {                                        
  2.  
  3.        
  4.         CE.Cargar();
  5.     }

el problema es que con el planteamiento que hice no pasa nada .-., alguna posible solucion?