Conceptos Clave en la Programación Basada en Componentes
La Programación Basada en Componentes (PBC) es una metodología de programación que se centra en el uso de elementos reutilizables, denominados componentes. Un componente es un módulo de código ya implementado y reutilizable que puede interactuar con otros componentes software a través de interfaces de comunicación bien definidas.
- Componente: Módulo de código reutilizable.
- Get: Método para analizar el contenido de una propiedad.
- Set: Método para modificar el valor de una propiedad.
- Introspección: Característica de entornos visuales que permite obtener dinámicamente métodos, propiedades y eventos de un componente.
- Paquete: Agrupación de ficheros ejecutables, elementos multimedia, librerías y bibliotecas necesarios para desplegar una aplicación.
- POC: Siglas de «Programación basada en componentes» (usualmente se refiere a «Proof of Concept» o «Prueba de Concepto», se recomienda evitar esta abreviatura ambigua en este contexto).
- Programación Basada en Componentes (PBC): Metodología de programación basada en componentes reutilizables.
- Propiedad: Datos públicos que definen la apariencia y comportamiento de un objeto. Se modifican con métodos.
- Reflexión: Característica que permite recuperar y modificar dinámicamente la estructura de un objeto.
Tipos de Propiedades
Las propiedades pueden ser de diferentes tipos, según la naturaleza de los datos que representan:
- Propiedades simples: Representan un solo valor (ej: String, int, boolean).
- Propiedades indexadas: Representan un conjunto de valores en forma de array.
Ámbito estático: Las propiedades y métodos estáticos pueden ser utilizados sin necesidad de crear una instancia del objeto.
Eventos en la Programación Basada en Componentes
Los eventos son acciones o sucesos que ocurren en un componente y que pueden ser detectados y manejados por otros componentes o por la aplicación en general.
Tipos de Eventos
Clase | Descripción |
---|---|
EventObject | Clase principal de la que derivan todos los eventos. |
MouseEvent | Eventos relativos a la acción del ratón. |
ComponentEvent | Eventos relacionados con cambios en el componente (tamaño, posición). |
ContainerEvent | Eventos al añadir o eliminar componentes de un contenedor. |
WindowEvent | Eventos relacionados con variaciones en una ventana (apertura, cierre, cambio de tamaño). |
ActionEvent | Evento que se produce al detectarse una acción sobre un componente (uno de los más comunes). |
Ejemplos de ActionEvent según el Componente
Componente | Evento | Descripción |
---|---|---|
TextField | ActionEvent | Pulsación de Enter. |
Button | ActionEvent | Pulsación del botón. |
ComboBox | ActionEvent, ItemEvent | Selección de un valor. |
CheckBox | ActionEvent, ItemEvent | Marcado de la casilla. |
ScrollBar | AdjustmentEvent | Movimiento de la barra. |
TextComponent | TextEvent | Cambio en el texto. |
Listeners (Escuchadores)
Los listeners, o escuchadores, son objetos que permiten detectar la ocurrencia de eventos. Se definen y activan para «escuchar» eventos específicos.
KeyListener
Detecta la pulsación de teclas. Implementa los siguientes eventos:
- KeyPressed: Al pulsar la tecla.
- KeyTyped: Al pulsar y soltar la tecla.
- KeyReleased: Al soltar la tecla.
ActionListener
Detecta la pulsación sobre un componente. Algunos ejemplos de eventos asociados a ActionListener son:
- Button: Click en el botón o Enter con el foco sobre el botón.
- TextField: Enter con el foco en la caja de texto.
- MenuItem: Selección de una opción del menú.
- ListView: Doble click sobre un elemento de la lista.
MouseListener
Este evento se produce al interactuar con el ratón sobre un componente.
FocusListener
Este evento se produce cuando un elemento gana o pierde el foco.
MouseMotionListener
Eventos asociados:
- mouseMoved: Movimiento del puntero sobre el componente.
- mouseDragged: Arrastre de un elemento (click previo).
Persistencia de Componentes
La persistencia permite que el estado de un componente se mantenga. Esto se logra a través de la serialización. Al crear un componente, se debe implementar una de las siguientes interfaces:
- Serialización automática:
java.io.Serializable
. - Serialización programada:
java.io.Externalizable
.