09 abril, 2010

Arquitectura Swing

Arquitectura Swing

Swing es una plataforma independiente, Modelo-Vista-Controlador GUI marco para Java. De ello se desprende una sola rosca modelo de programación, y posee los siguientes rasgos:

Independencia de la Plataforma: Swing es una plataforma independiente, tanto en términos de su expresión (Java) y su aplicación (la prestación universal de no-nativos de widgets).

Extensible: Swing es una arquitectura altamente particionada, que permite "enchufar" varias implementaciones de interfaces personalizadas preestablecidas: Los usuarios pueden proporcionar su propia implementación de estos componentes para reemplazar las implementaciones predeterminadas. 

Personalizable: Por lo general, los usuarios personalizan un componente Swing estándar (como un JTable) mediante la asignación de Fronteras específicas como colores, fondos, opacidades, etc, como las propiedades de ese componente.


Configurable: Tiene fuerte dependencia en los mecanismos de ejecución y en los patronesde composición indirecta le permite responder en tiempo de ejecución a cambios fundamentales en su configuración.
Por ejemplo, los usuarios pueden proporcionar su propio aspecto y la sensación de ejecución, lo que permite cambios uniformes en el aspecto de las actuales aplicaciones Swing sin ningún cambio mediante programación al código de la aplicación.

Interfaz de Usuario Ligera: Swing no utiliza los controles del sistema operativo anfitrión nativo de interfaz gráfica de usuario para la visualización de sí mismo. Swing "pinta" sus controles mediante programación a través del uso de Java 2D API, en lugar de poner en una caja de herramientas de interfaz de usuario de origen. Por lo tanto, un componente Swing no tiene un sistema operativo nativo correspondiente a la interfaz gráfica de usuario.
Sin embargo, en el fondo todos los componentes Swing se basan en un AWT contenedor, ya que (Swing) JComponentse extiende (AWT) de contenedores. Esto permite a Swing conectarla al sistema operativo anfitrión de la interfaz gráfica de usuario, incluido el dispositivo fundamental / asignaciones de pantalla y las interacciones del usuario, tales como pulsaciones de teclas o movimientos del ratón.

Débilmente acoplados y MVC: La biblioteca Swing hace un uso intensivo del Modelo / Vista / Controlador de software (Patrón de Diseño), que conceptualmente desacopla los datos que se ve desde la interfaz de los controles de usuario a través del cual se ve. Debido a esto, la mayoría de los componentes Swing se han asociado los modelos (que se especifican en términos de Java interfaces ), y el programador puede utilizar por defecto varias implementaciones o proporcionar su propia cuenta.

Relación con AWT: Desde las primeras versiones de Java, una parte del Window Toolkit Resumen (AWT) ha proporcionado API independiente de plataforma para los componentes de interfaz de usuario. En AWT, cada componente se representa y controlada por los pueblos originarios de pares específicos de los componentes de un sistema de ventanas subyacente.
Por el contrario, los componentes Swing se suelen describir como ligeros, ya que no requieren la asignación de los recursos nativos en el sistema de ventanas de explotación de la caja de herramientas. Los componentes AWT se conocen como componentes de peso pesado.
Gran parte de la API Swing es generalmente una extensión complementaria del AWT en lugar de un reemplazo directo. 

Relación con SWT: El Standard Widget Toolkit (SWT) es un conjunto de instrumentos desarrollado originalmente por IBM y ahora mantenida por la comunidad Eclipse. La aplicación SWT tiene más en común con los componentes pesados de AWT. Esto ofrece beneficios tales como una mayor fidelidad exacta con el kit de herramientas de ventanas nativo subyacente, a costa de una mayor exposición a la plataforma nativa en el modelo de programación.
Se ha producido un importante debate y la especulación sobre el rendimiento de SWT frente Swing, algunos insinuó que fuerte dependencia de SWT en JNI haría más lenta cuando el componente de interfaz gráfica de usuario y Java necesidad de comunicar los datos, pero más rápido en el renderizado cuando el modelo de datos se ha cargado en la GUI.

No hay comentarios.:

Publicar un comentario