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 originalpackage 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
public void agregar
(Object o
) { // OMITIDO
}
@Override
public void modificar
(Object o
) { // OMITIDO
}
@Override
public void eliminar
(Object o
) { // OMITIDO
}
@Override
public ArrayList<Object> buscarTodo() {
allUsers = new ArrayList<Object>();
try {
String query
= " QUERY OMITIDO"; while(rs.next()){
allUsers.add( new Usuario( CAMPOS OMITIDO ) );
}
OMITIDO
}
return allUsers;
}
@Override
public ArrayList
<Object
> buscarPorParametro
(Object o
) {
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 originalpackage 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
public String getColumnName
(int arg0
) { return encabezados[arg0];
}
@Override
public int getRowCount() {
allUsers = new ArrayList<Object>();
allUsers = controladorUsuario.buscarTodo();
return allUsers.size();
}
@Override
public Object getValueAt
(int rowIndex,
int columnIndex
) { Usuario user = (Usuario) allUsers.get(rowIndex);
switch(columnIndex){
case 0: columna
= String.
valueOf( user.
getIdUsuario() ); 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.