Cómo se usa el patrón MVC en Swing

Posted by Arturo Tena on Jun 15, 2006 in General | Subscribe

Cada componente Swing tiene un modelo, y la vista y el controlador están unidos en el mismo componente. Además, la vista usa un UI Manager para renderearse. El modelo es el modelo de datos de la aplicación, está relacionado con los datos que la aplicación maneja.

Cuando se crea, cada componente crea un modelo interno. Se pude también crear un modelo por aparte, y asignárselo a uno o más componentes, que entonces compartirán los datos que presentan.

También existe el modelo de estadoi GUI, que almacena el estado del componente gráfico, como si un botón está oprimido o no, o cuáles items están selecionados en una lista.

El modelo, cuando cambia, avisa mediante eventos al componente, el cual se registró como listener con el modelo. Existen los eventos ligeros (usado por ejemplo en las barras de desplazamiento, por performance sólo se sabe que algo cambió, pero no qué cambió), y los eventos con estado completo (avisa qué cambió exactamente, por ejemplo en las tablas).
Se pude agregar listeners directamente al modelo, o pasarlo por alto y ponerlos en el componente.

Se pueden anteponer filtros entre el modelo y el componente, para poder cambiar los datos presentados sin cambiar el modelo (por ejemplo, para ordernar una lista).

Referencias:

Bookmark and Share
VN:F [1.8.3_1051]
Rating: 0.0/5 (0 votes cast)

Tags:

One Comment

  • Jaime says:

    Sin duda tengo que investigar un poco mas sobre esto… realmente recien estoy comenzando con MVC… y me parece tan necesario para hcer codigo modular y ordenado

    UN:F [1.8.3_1051]
    Rating: 0.0/5 (0 votes cast)

Leave a Reply

XHTML: You can use these tags:' <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.

Copyright © 2006-2010 Arturo Tena. All rights reserved. Privacy policy.