jueves, 26 de julio de 2007

Introducción a Swing

El paquete más comunmente utilizado en Java para crear interfaces gráficas es el paquete Swing, este contiene una serie de controles que se puede utilizar pero Swing ws un poco más que solamente controles:
  • Controles GUI para presentación en pantalla.
  • La interfaz Java2D para dibujo en formularios.
  • Look & Feel's intercambiables.
  • Control de operaciones de transferencia (Copiar, Pegar)
  • Registro de acciones deshacibles.
  • Soporte UNICODE.
  • Accesibilidad.
En posteriores posts vamos arevisar algunos conceptos generales y avanzados de Swing más a detalle, por el momento vamos a considerar los patrones que se utilizan en Swing una y otra vez.

  • Action. Action es una clase que engloba cualquier acción que se pueda realizar en el sistema, lo que debería pasar cuando ocurre un evento. Un elémento Action se comporta de manera completamente independiente de sus contenedores, así que podemos hacer que un mismo Actión se corresponda con muchos controles.
  • Listener. El control de eventos en Java se basa en el concepto de escucha o Listener, un escucha es una clase que implementa determinada interfaz de eventos, cuando un objeto dispara un evento utiliza esta interfaz para comunicar a todos los objetos escuchas de que algo ha ocurrido en el. Utilizando los Listeners podemos crear clases de control de multiples elementos o bien tener más de un controlador de evento para un solo control.
  • Model. Un Model define la manera en la que se van a presentar los datos dentro de un control determinado. La mayoría de las funcionalidades de un Model permiten que los datos sean alterados en la manera que se visualizan sin, necesariamente, modificar los datos mismos.
En terminos generales, si queremos que algún elemento reaccione a las acciones del usuario o del sistema mismo deberíamos usar Listener's; si conocemos que esa misma acción debe ocurrir por otras causas deberiamos agregar un Action. Generalmente la idea de cambiar el comportamiento y la visualización de los datos es una responsabilidad del Model.

No hay comentarios: