Está en la página 1de 9

Jimnez Viana Israel Enrique

Qu es la POO?
La programacin Orientada a objetos (POO) es una forma especial de programar,
ms cercana a como expresaramos las cosas en la vida real que otros tipos de
programacin. Con la POO tenemos que aprender a pensar las cosas de una
manera distinta, para escribir nuestros programas en trminos de objetos,
propiedades, mtodos y otras cosas que veremos rpidamente para aclarar
conceptos y dar una pequea base que permita soltarnos un poco con este tipo de
programacin.
Qu es un objeto?
Pensar en trminos de objetos es muy parecido a cmo lo haramos en la vida
real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un
esquema de POO. Diramos que el coche es el elemento principal que tiene una
serie de caractersticas, como podran ser el color, el modelo o la marca. Adems
tiene una serie de funcionalidades asociadas, como pueden ser ponerse en
marcha, parar o aparcar. Pues en un esquema POO el coche sera el objeto, las
propiedades seran las caractersticas como el color o el modelo y los mtodos
seran las funcionalidades asociadas como ponerse en marcha o parar.
Qu es un algoritmo?
Un Algoritmo, se puede definir como una secuencia de instrucciones que
representan un modelo de solucin para determinado tipo de problemas. O bien
como un conjunto de instrucciones que realizadas en orden conducen a obtener la
solucin de un problema. Por lo tanto podemos decir que es un conjunto ordenado
y finito de pasos que nos permite solucionar un problema.
Qu es un diagrama de flujo?
Los diagramas de flujo son una serie de pasos secuenciales que representan de
una manera tradicional los detalles algortmicos de los procesos. Se utilizan
principalmente en programacin, economa y procesos industriales; dichos
diagramas una nomenclatura simblica con significados especiales.
En las representaciones grficas de procesos con smbolos, estos se
interconectan para que en conjunto le den un sentido lgico al diagrama de flujo el
cual da pie al desarrollo de un sistema de informacin.

Qu es un evento?
Los eventos son todas las acciones que el usuario inicia, dar clic sobre un botn,
presionar las teclas del teclado, etc. Cada vez que se produce un evento, se crea
un objeto. Cada lenguaje de programacin tiene su propio modelo de eventos.
Gestin de Eventos
Auditores de eventos.
Un auditor es un objeto que es avisado cuando ocurre un evento. Tiene dos
requisitos principales. Primero tiene que ser registrado o ir acompaado por una o
ms fuentes para recibir notificaciones sobre los tipos especficos de eventos.
Segundo, tiene que implementar mtodos para recibir y procesar notificaciones.

Clases de eventos principales en java.awt.event

Clase de evento

Descripcin

ActionEvent

Se genera cuando se presiona un botn, se hace doble


clic en un elemento de una lista, o se selecciona un
elemento de tipo men.

AdjustmentEvent

Se genera cuando se manipula un scrollbar.

ComponentEvent

Se genera cuando un componente se oculta, se


mueve, se cambia de tamao o se hace visible.

ContainerEvent

Se genera cuando se aade o se elimina un


componente de un contenedor.

FocusEvent

Se genera cuando un componente gana o pierde el

foco.

InputEvent

Superclase abstracta de cualquier clase de evento de


entrada de componente.

ItemEvent

Se genera cuando se hace click en un checkbox o en


un elemento de una lista; tambien ocurre cuando se
hace una seleccin en una opcin choice o cuando se
selecciona o deselecciona un elemento de un men de
opciones.

KeyEvent

Se genera cuando se recibe una entrada desde el


teclado.

MouseEvent

Se genera cuando el ratn se arrastra, se mueve, se


hace clic, se presiona, o se libera; tambin se genera
cuando el ratn entra o sale de un componente.

TextEvent

Se genera cuando se cambia el valor de un rea de


texto o un campo de texto

WindowEvent

Se genera cuando una ventana se activa, se cierra, se


desactiva, se minimiza, se maximiza, se abre, o se
sale de ella.

Ejemplos de componentes que pueden generar eventos

Origen
evento

Button

de Descripcin

Genera eventos de accin (ActionEvent) cuando se

presiona el botn.

Checkbox

Genera eventos de elementos (ItemEvent) cuando se


selecciona o deselecciona un checkbox.

Choice

Genera eventos de elementos cuando se cambia de opcin


choice.

List

Genera eventos de accin cuando se hace doble click sobre


un elemento, genera eventos de elemento cuando se
selecciona o deselecciona un elemento.

Menu Item

Gener eventos de accin cuando se selecciona un


elemento de men; genera eventos de lemento cuando se
selecciona o se deselecciona un elemento de un men de
opciones.

Scrollbar

Genera eventos de ajuste (AdjustmentEvent) cuando se


manipula el scrollbar.

Text
components

Genera eventos de texto (TextEvent) cuando el usuario


introduce un carcter.

Window

Genera eventos de ventana (WindowEvent) cuando una


ventana se activa, se cierra, se desactiva, se minimiza, se
maximiza, se abre o se sale de ella.

Cmo se genera y propagan los eventos?


El paquete java.awt.event es el que contiene la mayor parte de las clases e
interfaces de eventos. El modelo de delegacin de eventos es un concepto que
trabaja de la siguiente manera:

Una fuente genera un evento y lo enva a uno a ms oyentes o auditores, que han
estado simplemente esperando hasta que reciben ese evento y una vez recibido lo
procesan y lo devuelven.
Una fuente es un objeto que genera un evento. Esto ocurre cuando cambia de
alguna manera el estado interno de ese objeto. Las fuentes pueden generar ms
de un tipo de eventos.
Una fuente tiene que ir acompaada de auditores para que estos reciban las
notificaciones sobre el tipo especfico de evento, cada tipo de evento tiene su
propio mtodo de registro. La forma general es:
Public void addTypeListener(TypeListener el)
Por ejemplo el mtodo que registra o acompaa a un auditor de evento de teclado
es addKeyListener( ). Cuando ocurre un evento, se notifica a todos los auditores
registrados, que reciben una copia del objeto evento. Esto es lo que se conoce
como multicasting del evento.
Una fuente tambin puede proporcionar un mtodo que permita a un auditor
eliminar un registro en un tipo especfico de evento y la forma general es:
Public void removeTypeListener(TypeListener el);
Aqu Type es el nombre del evento y el es una referencia al auditor. Por ejemplo
para borrar un auditor del teclado se llamara removeKeyListener( ).
Mtodos de control de eventos
Cuando una accin sobre un componente genera un evento, se espera que
suceda algo, entendiendo por evento un mensaje que un objeto enva a algn
otro objeto.

El Ejemplo de evento

Nuevamente como es costumbre, el ejemplo es muy simple, validaremos el


funcionamiento ms comn sobre los eventos del mouse.........tan solo vamos a
presentar una ventana con un titulo y Botn central, el cual nos permitir evaluar
cuales son las acciones ejecutadas sobre el.....adicionalmente se le vincularn
eventos al ttulo para probar que estos no solo son aplicados a los botones sino a
cualquier componente, ya que los eventos a utilizar dependen exclusivamente del
mouse..........
La Aplicacin.

El sistema consta de 2 clases, una clase principal


que se llamar Aplicacion.java que ser la encargada de inicial el programa,
tambin tenemos la clase Ventana.java que tendr toda la parte grfica de la
ventana
principal.
Aplicacion.java
Esta clase como se mencion tan solo tendr la instancia de la clase ventana y
permitir el llamado de la misma, como es comn en los ejemplos presentados, se
realiza as por organizacin....
1
public class Aplicacion {
2
public static void main(String args[]) {
3
Ventana ventana;
4
ventana = new Ventana();
5
ventana.setVisible(true);
6
}
7
}

Ventana.Java
Esta clase representa la ventana principal del sistema, como vemos implementa la
interface MouseListener que
permite
el
uso
de
los
mtodos mouseClicked(),mousePressed(), mouseReleased(), mouseExited(),
mouseEntered(), los cuales capturan los eventos para cuando se hace clic, se
presiona, se suelta, se sale, o se entra en algn componente respectivamente.....
1
class Ventana extends JFrame implements MouseListener {
2
JLabel etiqueta1, etiqueta2;
3
JLabel labelTitulo;
4
JButton boton1;
5
6
public Ventana() {
7
setLayout(null);
8
/**Propiedades del Label, lo instanciamos, posicionamos y
9
* activamos los eventos*/
10
labelTitulo= new JLabel();
11
labelTitulo.setText("Eventos del Mouse");
12
labelTitulo.setFont(new java.awt.Font("Comic Sans MS", 0, 28));
13
labelTitulo.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
14
labelTitulo.setBorder(javax.swing.BorderFactory.createBevelBorder
15
(javax.swing.border.BevelBorder.LOWERED));
16
labelTitulo.setBounds(40, 10, 300, 40);
17
labelTitulo.addMouseListener(this);
18
19
etiqueta1 = new JLabel();
20
etiqueta1.setBounds(10, 160, 190, 20);
21
etiqueta2 = new JLabel();
22
etiqueta2.setBounds(10, 180, 190, 20);
23
24
boton1 = new JButton();
25
boton1.setBounds(110, 75, 150, 75);
26
boton1.setText("Presioname");
27
boton1.addMouseListener(this);
28
29
add(labelTitulo);
30
add(etiqueta1);
31
add(etiqueta2);
32
add(boton1);
33
34
setTitle("CoDejaVu Eventos del Mouse");
35
setSize(400, 240);
36
}
37
38
public void mouseClicked(MouseEvent evento) {
39
if (evento.getSource() == boton1){

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

etiqueta1.setText("Hizo clic en mi botn");


}
if (evento.getSource() == labelTitulo){
etiqueta1.setText("Hizo clic en el Titulo");
}
}
public void mousePressed(MouseEvent evento) {
etiqueta1.setText("");
if (evento.getSource() == boton1){
etiqueta2.setText("Presiono el botn");
}
if (evento.getSource() == labelTitulo){
etiqueta2.setText("Presiono el Titulo");
}
}
public void mouseReleased(MouseEvent evento) {
if (evento.getSource() == boton1){
etiqueta2.setText("Libero el botn");
}
if (evento.getSource() == labelTitulo){
etiqueta2.setText("Libero el Titulo");
}
}
public void mouseExited(MouseEvent evento) {
if (evento.getSource() == boton1){
etiqueta1.setText("Salio del botn");
}
if (evento.getSource() == labelTitulo){
etiqueta1.setText("Salio del Titulo");
}
etiqueta2.setText("");
}
public void mouseEntered(MouseEvent evento) {
if (evento.getSource() == boton1){
etiqueta1.setText("Entro a mi botn");
}
if (evento.getSource() == labelTitulo){
etiqueta1.setText("Entro al Titulo");
}
etiqueta2.setText("");
}
}

Como vemos cada uno de los mtodos de la interface MouseListener permite


identificar cual es el componente al que se le asigna el evento y basado en eso
interpreta cual es el mensaje que se debe mostrar en pantalla.
Es importante tener muy presente que se debe indicar que componentes van a
hacer uso de los eventos del mouse, esto mediante el uso
deaddMouseListener(this), por ejemplo para el botn se pone:
1
labelTitulo.addMouseListener(this);
Diciendo as que el botn va a escuchar los eventos del ratn, si esta linea se
omite, el boton no podria interpretar los eventos y listo.

Conclusin
Las GUI estn controladas por eventos, alguno de estos eventos son, mover el
Mouse, seleccionar o escribir en un campo de texto, hacer click en un botn, ya
sea en la pantalla o en el Mouse etc. Cuando ocurre una interaccin con el
usuario, se envia un mensaje al programa. La informacin de los eventos de la
GUI se almacena en un objeto de la clase que extiende a AWTEvent. Los Tipos de
eventos del paquete java.awt.event se utilizan con componentes de AWT y de
Swing. Los tipos de eventos adicionales, especficos para SPNG, se declaran en
el paquete javax.swing.event.

También podría gustarte