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

Implementado PropertyChangeListener como un observer

Estas en el tema de Implementado PropertyChangeListener como un observer en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/01/2023, 22:40
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 436
Antigüedad: 11 años, 9 meses
Puntos: 6
Implementado PropertyChangeListener como un observer

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 original
  1. public class Privilegio implements Comparable<Privilegio>
  2. {
  3.     private int id;
  4.     private String nombre;
  5.     private boolean activo;
  6.     private static int maxId = 0;
  7.    
  8.     public Privilegio(int xid, String xnombre) throws Exception {
  9.         setId(xid);
  10.         setNombre(xnombre);
  11.     }
  12.     .....
  13. }

PrivilegiosContr.java -> Controlador
Código Java:
Ver original
  1. public class PrivilegiosContr extends Adaptador<Privilegio> {
  2.     private static PrivilegiosContr gestoria;
  3.     private PagesMap<Integer, Privilegio> entidades;
  4.    
  5.     public static PrivilegiosContr getInstancia(){
  6.         if(gestoria == null){
  7.             gestoria = new PrivilegiosContr();
  8.         }
  9.         return gestoria;
  10.     }
  11.    
  12.     private PrivilegiosContr(){        
  13.         entidades = new PagesMap();
  14.     }
  15.  
  16.     @Override
  17.     public void borrar(Privilegio entidad) throws Exception {
  18.         if(verificarBorrado(entidad)){
  19.             entidad.setActivo(!entidad.isActivo());
  20.         } else {
  21.             entidades.remove(entidad.getId());
  22.         }
  23.     }
  24.  
  25.     @Override
  26.     public void editar(Privilegio entidad) throws Exception {
  27.         Privilegio privilegio = obtenerPorId(entidad.getId());
  28.         if(!privilegio.equals(entidad)) {
  29.             if(entidades.containsValue(entidad)){
  30.                 throw new Exception("El privilegio: " + entidad.getNombre() + " ya existe");
  31.             } else {
  32.                 privilegio.setNombre(entidad.getNombre());
  33.             }
  34.         }
  35.     }
  36.  
  37.     @Override
  38.     public void guardar(Privilegio entidad) throws Exception {
  39.         if(entidades.containsValue(entidad)){
  40.             throw new Exception("El privilegio: " + entidad.getNombre() + " ya existe");
  41.         } else {
  42.             entidad.setActivo(true);
  43.             entidades.put(entidad.getId(), entidad);
  44.             Privilegio.incrementarMaxId();
  45.         }
  46.     }
  47.     .....
  48. }

BackendView -> Vista general
Código Java:
Ver original
  1. public class BackendView extends javax.swing.JPanel {
  2. TablaGenerica modP = new TablaGenerica(new ModeloTablaPrivilegio());
  3.  
  4. public BackendView(JFrame xventana) {
  5.         initComponents();
  6.         //como cargo los datos
  7.         modP.cargarTablaGenerica(tabPrivilegios);
  8.         modP.getModelo().updateTable(null);
  9.         modP.getTabla().setComponentPopupMenu(ppmBackend);
  10.         modP.getTabla().addMouseListener(new MouseAdapter() {
  11.               @Override
  12.               public void mouseClicked(MouseEvent e) {
  13.                      if(e.getClickCount()==2){
  14.                            editarFila();
  15.                      }
  16.              }                    
  17.        });
  18. }
  19. }

Solo estoy poniendo el código necesario, pero la cuestión es que necesito replicar el observer.
Espero sus respuestas y saludos.
__________________
Si te interesa, visita mi perfil de Linkedin. Gracias



La zona horaria es GMT -6. Ahora son las 21:24.