Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Sobre el Ejemplo MVC de Oracle

Buenos días,

En el siguiente enlace tenemos el ejemplo MVC de Oracle:
http://www.oracle.com/technetwork/articles/javase/mvc-136693.html

Que se puede descargar en la parte inferior de la página.

Pues bien, estoy creando una copia del proyecto, pero dejando nada más que una sola propiedad. Modelo, Controlador y vista, para tratar una única propiedad. Está todo escrito... Pero la etiqueta a la que quiero definirle el nuevo valor de la propiedad no llega a obtenerlo.

Cuelgo el proyecto mio, modificado y simplicando el original de oracle:
http://www.megaupload.com/?d=GP51LEHZ

Creo que el error podría estar pues en como se propaga el evento del propertyChange a través de las clases... O bien en los ActionListeners de la clase UserViewPanel que esté tocando algo que no funcione...

El proyecto se ejecuta y está todo el código escrito. Excepto lo que falle claro. Por favor, alguien podría revisarlo y ver en que fallo ???? :( Me da rabia que no chute por que es que está hecho ya basicamente... seguro que es alguna chorrada. Pero no soy capaz de verlo.

Muchisimas gracias si alguno se anima a mirar el código y ayudarme.
PD: Dejo mi mail por si a alguien le interesa y quiere comentar algo.

noviembre 17, 2011 | Unregistered CommenterJeflopo@gmail.com

He resuelto el problema !!!!!! Aunque el debugger no devolvía errores sintácticos si que los había de lógica. La aplicación se ejecutaba sin problemas. Por eso no vi el error hasta que revisé en que punto la aplicación se perdía en el "intercambio de mensajes".

Vi que el addActionListener y ActionPerformed del botón funcionaba... Pero cuando la instancia del controlador iba a invocar el cambio de propiedad el debugger ya no entraba en el método:
// Invoca cambio en UserViewPanel.java
controller.changeUserName(txtNewName.getText());

// No entraba en UserController.java
public void changeUserName(String newUserName) {
setModelProperty(USER_NAME_PROPERTY, newUserName);
}

Al ver esto entendí que el error tenía que ser anterior, incluso al actionlistener... El error estaba en la clase... Concretamente en el constructor, donde en vez de pasarle el argumento le hice al controlador una referencia a sí mismo:
// Yo hice esto
public UserViewPanel(UserController userController) {
this.controller = controller;

this.initComponents();
}

// Y lo correcto era esto
public UserViewPanel(UserController userController) {
this.controller = userController;

this.initComponents();
}

Como dije, era una chorrada... un lápsus al poner mal una variable. Vamos lo típico. Ahora estoy feliz, de haberlo hecho y comprendido.

Lanzo una pregunta... ¿ Programaríais de esta forma vuestra aplicación ? El artículo de oracle sobre este MVC es del 2007 y no sé si hoy día directamente ustedes que saben ni se plantearían empezar así una aplicación ¿ o de que forma mejorarían este ?

Muchas gracias :D

noviembre 18, 2011 | Unregistered CommenterJeflopo@gmail.com