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
package modelos; public class Usuario { //CONSTRUCTOR - OMITIDO // GETTERS Y SETTERS - OMITIDO }
Las Consultas del Usuario
Código Java:
Ver original
// IMPORTS - OMITIDO public class ControladorUsuario extends ConexionHeredada implements Mantenimientos { private Usuario usuario; public ArrayList<Object> allUsers; @Override // OMITIDO } @Override // OMITIDO } @Override // OMITIDO } @Override public ArrayList<Object> buscarTodo() { allUsers = new ArrayList<Object>(); try { while(rs.next()){ allUsers.add( new Usuario( CAMPOS OMITIDO ) ); } OMITIDO } return allUsers; } @Override usuario = (Usuario) o; allUsers = new ArrayList<Object>(); try { /* String query = QUERY OMITIDO"; ResultSet rs = stm.executeQuery(query); while(rs.next()){ allUsers.add( new Usuario( CAMPOS OMITIDOS ) ); } } catch (Exception e){ OMITIDO } return allUsers; } public ArrayList<Object> getAllUsers() { return allUsers; } public void setAllUsers(ArrayList<Object> allUsers) { this.allUsers = allUsers; } }
El Table Model
Código Java:
Ver original
package tableModels; import controladores.ControladorUsuario; import java.util.ArrayList; import javax.swing.table.AbstractTableModel; import enums.Usuarios; import modelos.Usuario; private static final long serialVersionUID = 1L; private ControladorUsuario controladorUsuario; private ArrayList<Object> allUsers = new ArrayList<Object>(); String [] encabezados = {Usuarios.IDUSUARIO.getText(), Usuarios.NOMBRE.getText(),Usuarios.APELLIDO.getText(), Usuarios.NOMBREUSUARIOS.getText(), Usuarios.CLAVE.getText(), Usuarios.ROL.getText(), Usuarios.CEDULA.getText(), Usuarios.TELEFONOS.getText(), Usuarios.DIRECCION.getText()}; public UserTableModel(ArrayList<Object> allUsers){ super(); this.allUsers = allUsers; controladorUsuario = new ControladorUsuario(); } @Override public int getColumnCount() { return encabezados.length; } @Override return encabezados[arg0]; } @Override public int getRowCount() { allUsers = new ArrayList<Object>(); allUsers = controladorUsuario.buscarTodo(); return allUsers.size(); } @Override Usuario user = (Usuario) allUsers.get(rowIndex); switch(columnIndex){ break; case 1: columna = user.getNombre(); break; case 2: columna = user.getApellido(); break; case 3: columna = user.getNombreUsuario(); break; case 4: columna = user.getClave(); break; case 5: columna = user.getRol(); break; case 6: columna = user.getCedula(); break; case 7: columna = user.getTelefonos(); break; case 8: columna = user.getDireccion(); break; } return columna; } }
Y el ActionEvent encargadod e ejecutar los cambios cuando le den a Enter en el JTextField
Código Java:
Ver original
@Override if(e.getSource().equals(perfilAdministrador.getTxtBuscar())){ if(e.getKeyCode() == 10){ } } }
CUALQUIER SUGERENCIA, MATERIAL DE ESTUDIO, LO QUE SEA, NO DUDES EN POSTEARLO.