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

[SOLUCIONADO] Llamar un TableModel desde otra clase

Estas en el tema de Llamar un TableModel desde otra clase en el foro de Java en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 31/07/2013, 10:34
Avatar de drakk92  
Fecha de Ingreso: julio-2013
Ubicación: cali
Mensajes: 25
Antigüedad: 10 años, 9 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?
  #2 (permalink)  
Antiguo 31/07/2013, 11:13
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años
Puntos: 9
Respuesta: Llamar un TableModel desde otra clase

Mira crea una clase "claseA" en la cual tenga el metodo
Código Java:
Ver original
  1. public DefaultTableModel 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.  
  29.  
  30.         } catch (SQLException ex) {
  31.             Logger.getLogger(ing_emp.class.getName()).log(Level.SEVERE, null, ex);
  32.         }
  33.         return model;
  34.     }

y en tu JFrame al pulsar el boton que invoque el metodo:
Código Java:
Ver original
  1. this.jTable.setModel(claseA.cargar());
  #3 (permalink)  
Antiguo 31/07/2013, 14:19
Avatar de drakk92  
Fecha de Ingreso: julio-2013
Ubicación: cali
Mensajes: 25
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: Llamar un TableModel desde otra clase

Hey! muchisimas gracias me sirvio, ahora ya podre optimizar un poco el uso de ese metodo.

Etiquetas: clase, jtable, metodo, string
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 16:51.