Tengo una clase digamos MyJFrame
que representa la GUI de mi aplicación. Implementa la interfaz Observer
y anula el método update
.Hacer un JFrame y Objeto Observable
public class MyJFrame extends JFrame implements Observer{
...
public void update(Observable arg0, Object arg1){
...
}
}
Ahora me quieren hacer también mi JFram un objeto observable pero no se puede porque ya extender la clase JFrame
. Intenté crear una variable de tipo Observable en mi clase.
public class MyJFrame extends JFrame implements Observer{
Observable observable = new Observable();
El problema aquí es que puedo añadir Observador en este campo observable y también puedo notificar al observador pero no puedo invocar el método setChanghed()
(porque se ha declarado como protegido), que tiene que ser llamado antes de la notificación .
¿Tiene alguna idea sobre cómo puedo implementarlo?
Gracias!
¿Puede ser más detallado, por favor? ¡Gracias! – Maverik
Al extender una clase, puede volver a declarar sus métodos con un modificador de visibilidad que es más alto de lo que era anteriormente. Dado que 'Observa's' setChanged() 'estaba protegido, puede crear una subclase de' Observable' con 'setChanged()' siendo pública. – Jeffrey
No estoy de acuerdo, pero estaba seguro de que no era posible modificar la visibilidad de un método. Gracias, funciona! – Maverik