Desarrollo de aplicaciones multiplaforma en Linux: Aplicaciones en el escritorio con Java/SWT | ||
---|---|---|
Anterior | Capítulo 3. Evolución de Java Toolkits | Siguiente |
SWING es la evolución de AWT. Se podria decir que la versión actual de AWT se llama SWING.
Uno de los objetivos de crear SWING era poder enchufar un look&feel a la GUI en una forma independiente a los datos que esta contiene y en lo posible independiente a la plataforma de ejecución. Es asi como SWING tiene varios look&feel como son : Motif (Unix), Windows (Win32), y Metal (todas las plataformas).
Este toolkit utiliza a full una arquitectura del tipo Model-View-Controller. En donde se distinguen 3 componentes: uno que mantiene la estructura de datos interna (Model), otro que indica cómo esta estructura se muestra al mundo exterior (View), y finalmente un componente que permite interactuar con los anteriores mediante eventos y escuchadores de eventos.
Esta característica de SWING permite tener interfaces altamente abstractas, en donde comunmente el desarrollador solo se encarga de proveer de un modelo y SWING se encarga del resto. Tambien es posible tener varias vistas distintas de un mismo modelo.
En terminos de funcionalidad SWING es un toolkit bastante completo y a la vez complejo. La curva de aprendizaje es alta si no se tienen bien asimilados los conceptos de M-V-C, pero una vez pasada esta etapa el desarrollo de aplicaciones con GUI con Java se convierte en una opcion bastante potente.
Similar a lo que sucedió con los applets, todo esto que parece muy bueno tiene sus inconvenientes en la vida real:
Las aplicaciones que usan SWING necesitan una buena cantidad de RAM para funcionar
Los tiempos de respuesta o feedback para el usuario son notablemente lentos, en comparación a los toolkits nativos
Las aplicaciones SWING, sobre todo con el L&F Metal, son distintas a sus aplicaciones nativas, esto produce confusión a los usuarios