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

Actualizar JTable usando AbstractTableModel

Estas en el tema de Actualizar JTable usando AbstractTableModel en el foro de Java en Foros del Web. Saludos Me gustaria saber como puedo actualizar el contenido de una tabla a partir de una arrayList. Yo cargo la tabla con una consulta, esos ...
  #1 (permalink)  
Antiguo 15/03/2012, 10:25
 
Fecha de Ingreso: junio-2009
Mensajes: 88
Antigüedad: 14 años, 10 meses
Puntos: 4
Actualizar JTable usando AbstractTableModel

Saludos

Me gustaria saber como puedo actualizar el contenido de una tabla a partir de una arrayList.
Yo cargo la tabla con una consulta, esos resultados los introduzco en un arrayList, el arrayList en un tableModel que hereda de AbstractTableModel, y le paso el table model a la tabla.

Quisiera saber como puedo hacer que cuando el usuario introduzca un dato, por ejemplo un nombre de un usuario, yo pueda utilizar la consulta que cree,
para que con los resultados que me da la base de datos, y el arrayList que creo con esos resultados, pueda actualizar la tabla.

A continuacion, pongo todas las clases que utilizo para cargar la tabla.

Comenzando desde el modelo.
Código Java:
Ver original
  1. package modelos;
  2.  
  3. public class Usuario {
  4.    
  5.     private String  IdUsuario;
  6.     private String  Nombre;
  7.     private String  Apellido;
  8.     private String  NombreUsuario;
  9.     private String Clave;
  10.     private String  Rol;
  11.     private String  Cedula;
  12.     private String  Telefonos;
  13.     private String  Direccion;
  14.    
  15.     //CONSTRUCTOR - OMITIDO
  16.  
  17.     // GETTERS Y SETTERS - OMITIDO  
  18.    
  19. }

Las Consultas del Usuario

Código Java:
Ver original
  1. // IMPORTS - OMITIDO
  2.  
  3. public class ControladorUsuario extends ConexionHeredada implements Mantenimientos {
  4.  
  5.     private Usuario usuario;
  6.     public ArrayList<Object> allUsers;
  7.  
  8.     @Override
  9.     public void agregar(Object o) {
  10.     // OMITIDO
  11.     }
  12.  
  13.     @Override
  14.     public void modificar(Object o) {
  15.     // OMITIDO
  16.     }
  17.  
  18.     @Override
  19.     public void eliminar(Object o) {
  20.           // OMITIDO
  21.     }
  22.  
  23.     @Override
  24.     public ArrayList<Object> buscarTodo() {
  25.  
  26.     allUsers = new ArrayList<Object>();
  27.     try {      
  28.         String query = " QUERY OMITIDO";
  29.         ResultSet rs = stm.executeQuery(query);
  30.         while(rs.next()){
  31.         allUsers.add( new Usuario( CAMPOS OMITIDO ) );
  32.         }          
  33.     } catch (Exception e){
  34.         OMITIDO
  35.     }
  36.  
  37.     return allUsers;
  38.     }
  39.  
  40.     @Override
  41.     public ArrayList<Object> buscarPorParametro(Object o) {
  42.  
  43.     usuario = (Usuario) o;
  44.     allUsers = new ArrayList<Object>();
  45.     try {      
  46.         /*
  47.       String query =  QUERY OMITIDO";
  48.         ResultSet rs = stm.executeQuery(query);
  49.  
  50.         while(rs.next()){
  51.  
  52.         allUsers.add( new Usuario(  CAMPOS OMITIDOS ) );
  53.         }          
  54.     } catch (Exception e){
  55.        OMITIDO
  56.     }
  57.  
  58.     return allUsers;
  59.     }
  60.  
  61.  
  62.     public ArrayList<Object> getAllUsers() {
  63.     return allUsers;
  64.     }
  65.  
  66.     public void setAllUsers(ArrayList<Object> allUsers) {
  67.     this.allUsers = allUsers;
  68.     }
  69.  
  70. }

El Table Model

Código Java:
Ver original
  1. package tableModels;
  2.  
  3. import controladores.ControladorUsuario;
  4. import java.util.ArrayList;
  5. import javax.swing.table.AbstractTableModel;
  6. import enums.Usuarios;
  7. import modelos.Usuario;
  8.  
  9. public class UserTableModel extends AbstractTableModel {
  10.    
  11.     private static final long serialVersionUID = 1L;
  12.    
  13.     private ControladorUsuario controladorUsuario;
  14.     private ArrayList<Object> allUsers = new ArrayList<Object>();
  15.  
  16.     String [] encabezados = {Usuarios.IDUSUARIO.getText(), Usuarios.NOMBRE.getText(),Usuarios.APELLIDO.getText(),
  17.         Usuarios.NOMBREUSUARIOS.getText(), Usuarios.CLAVE.getText(), Usuarios.ROL.getText(),
  18.         Usuarios.CEDULA.getText(), Usuarios.TELEFONOS.getText(), Usuarios.DIRECCION.getText()};
  19.    
  20.     public UserTableModel(ArrayList<Object> allUsers){
  21.     super();
  22.     this.allUsers = allUsers;
  23.     controladorUsuario = new ControladorUsuario();
  24.     }
  25.    
  26.     @Override
  27.     public int getColumnCount() {
  28.     return encabezados.length;
  29.     }
  30.    
  31.     @Override
  32.     public String getColumnName(int arg0) {    
  33.         return encabezados[arg0];
  34.     }
  35.  
  36.     @Override
  37.     public int getRowCount() {
  38.     allUsers = new ArrayList<Object>();
  39.     allUsers = controladorUsuario.buscarTodo();
  40.     return allUsers.size();
  41.     }
  42.  
  43.     @Override
  44.     public Object getValueAt(int rowIndex, int columnIndex) {
  45.     String columna = "";
  46.     Usuario user = (Usuario) allUsers.get(rowIndex);
  47.     switch(columnIndex){
  48.         case 0: columna = String.valueOf( user.getIdUsuario() );
  49.         break;
  50.         case 1: columna = user.getNombre();
  51.         break;
  52.         case 2: columna = user.getApellido();
  53.         break;
  54.         case 3: columna = user.getNombreUsuario();
  55.         break;
  56.         case 4: columna = user.getClave();
  57.         break;
  58.         case 5: columna = user.getRol();
  59.         break;
  60.         case 6: columna = user.getCedula();
  61.         break;
  62.         case 7: columna = user.getTelefonos();
  63.         break;
  64.         case 8: columna = user.getDireccion();
  65.         break;
  66.     }
  67.     return columna;
  68.     }
  69.  
  70. }

Y el ActionEvent encargadod e ejecutar los cambios cuando le den a Enter en el JTextField

Código Java:
Ver original
  1. @Override
  2.     public void keyPressed(KeyEvent e) {
  3.     if(e.getSource().equals(perfilAdministrador.getTxtBuscar())){
  4.  
  5.         if(e.getKeyCode() == 10){
  6.  
  7.    
  8.         }
  9.  
  10.     }
  11.  
  12.     }

CUALQUIER SUGERENCIA, MATERIAL DE ESTUDIO, LO QUE SEA, NO DUDES EN POSTEARLO.


Última edición por sterlingdiazd; 16/03/2012 a las 07:46
  #2 (permalink)  
Antiguo 16/03/2012, 07:51
 
Fecha de Ingreso: junio-2009
Mensajes: 88
Antigüedad: 14 años, 10 meses
Puntos: 4
Respuesta: Actualizar JTable usando AbstractTableModel

Hay una forma sencilla de hacerlo?
  #3 (permalink)  
Antiguo 23/03/2012, 12:37
 
Fecha de Ingreso: junio-2009
Mensajes: 88
Antigüedad: 14 años, 10 meses
Puntos: 4
Respuesta: Actualizar JTable usando AbstractTableModel

Los trozos que dicen Omitido, es para no abultar el codigo que no es util para la solucion del problema

Última edición por sterlingdiazd; 23/03/2012 a las 12:57

Etiquetas: abstracttablemodel, jtable, tabla
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 12:53.