SWING/JFC

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: