Sunteți pe pagina 1din 5

package es.mlizquierdos.javakode; import java.applet.*; import java.awt.*; import java.lang.

Math; public class ArchimedianSpiral extends Applet { int width, height; int N = 30; // number of points per full rotation int W = 5; // winding number, or number of full rotations public void init() { width = getSize().width; height = getSize().height; setBackground( Color.black ); setForeground( Color.green ); } public void paint( Graphics g ) { int x1 = 0, y1 = 0, x2, y2; for ( int i = 1; i <= W*N; ++i ) { double angle = 2*Math.PI*i/(double)N; double radius = i/(double)N * width/2 / (W+1); x2 = (int)( radius*Math.cos(angle) ); y2 = -(int)( radius*Math.sin(angle) ); g.drawLine( width/2+x1, height/2+y1, width/2+x2, height/2+y2 ); x1 = x2; y1 = y2; } } }

Crear un applet que represente la funcin y=sen(x) entre 0 y 360 En la parte superior derecha, aparecer un mensaje titulado Funciones armnicas empleando la fuente Times 14, negrita, de color rojo Insertar el applet en una pgina web
public class EjemploApplet06 extends Applet { public void init() { } public void paint(Graphics g){ //dimensiones del applet int wAlto=getSize().height; int wAncho=getSize().width; //dimensiones de los caracteres int cAlto=g.getFontMetrics().getHeight(); int cAncho=g.getFontMetrics().stringWidth("0"); //texto "Funciones armnicas" en Times negrita y 14 de tamao //representacin grfica de la funcin y=sen(x) //origen //escalas //ejes horizontal y vertical for(int i=0; i<=360; i+=30){ //divisiones del eje horizontal } for(int i=-10; i<=10; i+=2){ //divisiones del eje vertical } for(int ang=0; ang<360; ang++){ //representa la funcin } } }

Creacin de Threads
El objetivo de esta prctica es introducir al uso de los threads (hilos) y trabajar con las clases que permiten su creacin.

4.1 La clase Thread


Para crear y ejecutar un thread, en primer lugar, hay que definir una clase que extienda a la clase Thread. Esta clase debe sobreescribir el mtodo run(), que le dice al sistema la tarea que debe ejecutar el thread. class AClass extends Thread { ... public void run() { ... } } En una clase cliente se crea un objeto thread. A estos objetos se les denomina ``objetos ejecutables''. El mtodo start() le indica al sistema que el thread est listo para ejecutarse. public class Client { ... public static void main(String [] args) { ... AClass ut = new AClass(); ... ut.start(); ... } }

4.2 La interfaz Runnable


Para crear un thread para una clase que hereda de otra, es necesario implementar la interfaz Runnable. Para ello podemos seguir los siguientes pasos generales:

Aadir en la declaracin de la clase que se va a implementar la interfaz Runnable: public class AClass extends MotherClass implements Runnable Declarar un objeto Thread en la clase destino. Por ejemplo, las siguientes sentencias declaran una instancia de la clase Thread, t, con valor inicial nulo: private Thread t = null; Por defecto, el valor inicial es nulo, as que la asignacin al valor ``null" no es necesaria.

Crear un thread (con el operador new) y ponerla en marcha llamando a su mtodo start(): t = new Thread(this); //crear el thread t.start(); //poner en marcha el thread El argumento ``this" en el constructor del thread es indispensable, puesto que especifica que el mtodo run() de la clase actual es el que se debe llamar cuando se ejecute el thread. El mtodo start() del thread provoca que el mtodo run() se ejecute.

Implementar en el mtodo run() de la clase, la tarea que se quiere que ejecute el thread.

Figura 4.1: Ejemplo del Productor/Consumidor

4.3 Ejercicios
1. Escriba una aplicacin Java que implemente lo siguiente: o Contemple la creacin de una clase (Mostrador) que contengan un atributo entero y mtodos para establecer y recuperar los valores de dicho atributo. o Escriba una aplicacion Productor/Consumidor en la que se instancian dos objetos: uno de tipo Productor y otro de tipo Consumidor. Estos objetos son threads que se encargan uno de poner un valor y el otro de recogerlo de un objeto de tipo Mostrador. El Productor genera un entero entre 0 y 1000, lo almacena en el mostrador y lo imprime. El Consumidor al contrario, consume el entero del mostrador, que es exactamente el mismo objeto en el que el Productor coloca los enteros. As pues, el productor y el consumidor de este ejemplo comparten los datos a travs del objeto de tipo Mostrador (figura 8.3). 2. Dibuje la jerarqua de clases que ha implementado.
3. Dibuje el diagrama de ejecucin de la aplicacin (tiempo

mtodo).

4. Escriba un applet que implemente lo mismo que el ejercicio 1. 5. Dibuje la jerarqua de clases para el applet. 6. Dibuje el diagrama de ejecucin del applet (tiempo

mtodo).

S-ar putea să vă placă și