Hola a todos, espero que bien, acá haciendoles la siguiente consulta: Resulta que la api de Observer esta obsoleta desde el jdk 9, estuve mirando sobre propertychangelistener, pero no tengo idea de cómo aplicarlo.
La situación es que necesito que cuando se agregue, edite o borre una fila, el jtable se actualice automáticamente, coloco los códigos:
Privilegio.java -> entidad
Código Java:
Ver originalpublic class Privilegio implements Comparable<Privilegio>
{
private int id;
private boolean activo;
private static int maxId = 0;
setId(xid);
setNombre(xnombre);
}
.....
}
PrivilegiosContr.java -> Controlador
Código Java:
Ver originalpublic class PrivilegiosContr extends Adaptador<Privilegio> {
private static PrivilegiosContr gestoria;
private PagesMap
<Integer, Privilegio
> entidades
;
public static PrivilegiosContr getInstancia(){
if(gestoria == null){
gestoria = new PrivilegiosContr();
}
return gestoria;
}
private PrivilegiosContr(){
entidades = new PagesMap();
}
@Override
public void borrar
(Privilegio entidad
) throws Exception { if(verificarBorrado(entidad)){
entidad.setActivo(!entidad.isActivo());
} else {
entidades.remove(entidad.getId());
}
}
@Override
public void editar
(Privilegio entidad
) throws Exception { Privilegio privilegio = obtenerPorId(entidad.getId());
if(!privilegio.equals(entidad)) {
if(entidades.containsValue(entidad)){
throw new Exception("El privilegio: " + entidad.
getNombre() + " ya existe"); } else {
privilegio.setNombre(entidad.getNombre());
}
}
}
@Override
public void guardar
(Privilegio entidad
) throws Exception { if(entidades.containsValue(entidad)){
throw new Exception("El privilegio: " + entidad.
getNombre() + " ya existe"); } else {
entidad.setActivo(true);
entidades.put(entidad.getId(), entidad);
Privilegio.incrementarMaxId();
}
}
.....
}
BackendView -> Vista general
Código Java:
Ver originalpublic class BackendView
extends javax.
swing.
JPanel { TablaGenerica modP = new TablaGenerica(new ModeloTablaPrivilegio());
public BackendView
(JFrame xventana
) { initComponents();
//como cargo los datos
modP.cargarTablaGenerica(tabPrivilegios);
modP.getModelo().updateTable(null);
modP.getTabla().setComponentPopupMenu(ppmBackend);
@Override
if(e.getClickCount()==2){
editarFila();
}
}
});
}
}
Solo estoy poniendo el código necesario, pero la cuestión es que necesito replicar el observer.
Espero sus respuestas y saludos.