16.01.2015 Views

Clase 13 Manejo de eventos en Java La interacción del usuario con ...

Clase 13 Manejo de eventos en Java La interacción del usuario con ...

Clase 13 Manejo de eventos en Java La interacción del usuario con ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Clase</strong> <strong>13</strong><br />

<strong>Manejo</strong> <strong>de</strong> <strong>ev<strong>en</strong>tos</strong> <strong>en</strong> <strong>Java</strong><br />

<strong>La</strong> interacción <strong>de</strong>l <strong>usuario</strong> <strong>con</strong> un programa GUI se efectúa a través <strong>de</strong> <strong>ev<strong>en</strong>tos</strong>. Cada ev<strong>en</strong>to ti<strong>en</strong>e una fu<strong>en</strong>te, la cual es la<br />

compon<strong>en</strong>te que lo produce.<br />

Sólo ciertas clases <strong>de</strong> objetos pue<strong>de</strong>n atrapar <strong>ev<strong>en</strong>tos</strong>: objetos que ti<strong>en</strong><strong>en</strong> implem<strong>en</strong>tado el acceso a los métodos <strong>de</strong> ciertas<br />

clases especiales que escuchan <strong>ev<strong>en</strong>tos</strong> (list<strong>en</strong>er).<br />

Por ejemplo, cuando un <strong>usuario</strong> oprime un botón <strong>en</strong> una GUI, el ev<strong>en</strong>to producido por el botón pue<strong>de</strong> ser atrapado<br />

(escuchado) por cualquier objeto cuya clase t<strong>en</strong>ga implem<strong>en</strong>tado acceso a métodos ActionList<strong>en</strong>er.<br />

Consi<strong>de</strong>remos el sigui<strong>en</strong>te programa:


PrimeraV<strong>en</strong>tana.java<br />

import javax.swing.*;<br />

import java.awt.*; //para administración <strong>de</strong> layout<br />

import java.awt.ev<strong>en</strong>t.*; //para ActionList<strong>en</strong>er<br />

class PrimeraV<strong>en</strong>tanaBoton{<br />

public static void main (String[] args){<br />

JFrame f = new JFrame ("Mi Primera V<strong>en</strong>tana <strong>con</strong> Botón");<br />

f.addWindowList<strong>en</strong>er(new WindowAdapter()<br />

{<br />

public void windowClosing(WindowEv<strong>en</strong>t e){<br />

System.exit(0);<br />

}<br />

}<br />

);<br />

Este programa agrega respuesta a una<br />

v<strong>en</strong>tana para cerrarla.<br />

Agrega un botón a la v<strong>en</strong>tana y adapta el<br />

tamaño <strong>de</strong> la v<strong>en</strong>tana al <strong>de</strong>l botón.<br />

El botón es receptivo al ratón y respon<strong>de</strong><br />

<strong>con</strong> imprimi<strong>en</strong>do una línea <strong>de</strong> caracteres <strong>en</strong><br />

<strong>con</strong>sola.<br />

JButton b = new JButton("¡Oprime aquà por un m<strong>en</strong>saje sorpresa!");<br />

b.setVerticalTextPosition(AbstractButton.CENTER);<br />

b.setHorizontalTextPosition(AbstractButton.CENTER);<br />

b.addActionList<strong>en</strong>er(new ActionList<strong>en</strong>er()<br />

{<br />

public void actionPerformed(ActionEv<strong>en</strong>t evt){<br />

System.out.println("Feliz dÃa <strong>de</strong> la Mujer");<br />

}<br />

}<br />

);<br />

}<br />

f.getCont<strong>en</strong>tPane().set<strong>La</strong>yout(new Flow<strong>La</strong>yout());<br />

f.getCont<strong>en</strong>tPane().add(b);<br />

f.setLocation(100,50);<br />

f.pack();<br />

f.setVisible(true);<br />

}


Se proporciona el código fu<strong>en</strong>te <strong>de</strong> los sigui<strong>en</strong>tes ejemplos más elaborados para estudiar <strong>en</strong> el laboratorio:<br />

Ej. 1<br />

Ej. 2


Tarea 1 <strong>de</strong>l 2o parcial (el 2o parcial cubre parte <strong>de</strong> los capítulos 2 y 3 ---<br />

Simulación <strong>de</strong> Sistemas Complejos y Software <strong>de</strong> Simulación y correspon<strong>de</strong> a<br />

la evaluación II <strong>con</strong> valor <strong>de</strong> 10% <strong>de</strong>l curso):<br />

Proponer una modificación a alguno <strong>de</strong> los mo<strong>de</strong>los<br />

1) Tiempo <strong>en</strong> CPU<br />

2) Sistema <strong>de</strong> múltiples filas y servidores<br />

3) Sistema <strong>de</strong> manufactura<br />

<strong>La</strong> modificación propuesta <strong>de</strong>be justificarse como una característica que permita<br />

estudiar situaciones no <strong>con</strong>templadas <strong>en</strong> los mo<strong>de</strong>los originales, por ejemplo:<br />

otros criterios <strong>de</strong> abandono o cambio <strong>de</strong> cola, parámetros variables <strong>en</strong> los<br />

servidores, medidas estadísticas <strong>de</strong> interés no <strong>con</strong>templadas <strong>en</strong> el<br />

planteami<strong>en</strong>to original, etc.<br />

<strong>La</strong> modificación <strong>de</strong>be cuando m<strong>en</strong>os implicar la <strong>de</strong>finición <strong>de</strong> una lista o un atributo<br />

nuevos. El programa resultante <strong>en</strong> C <strong>de</strong>berá t<strong>en</strong>er una interfase gráfica escrita<br />

<strong>en</strong> <strong>Java</strong>, la cual permitirá al <strong>usuario</strong>:<br />

1) Introducir parámetros <strong>de</strong> <strong>en</strong>trada<br />

2) Mandar llamar el ejecutable correspondi<strong>en</strong>te<br />

3) Desplegar los resultados

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!