Diseño y Programación Orientados a Objetos
1er. Sem 2014
Tarea 3: Applet para
Simulación Bolas, Puntos fijos, Resortes y Osciladores como Objetos de Software
Recomendación: Lea detenidamente la tarea. Si algo no lo entiende, consulte en clases. Si es preciso, se incorporarán aclaraciones al final.
Esta tarea tiene por objetivos:
* Ejercitar la creación de archivos .jar
* Ejercitar la reproducción de sonidos en Java.
* Ejercitar el paso de parámetros desde un archivo html a un applet.

Descripción General
  Básicamente ahora usted podrá correr las simulaciones a través de Internet usando un Applet. Además de las bolas, puntos fijos y resortes de la tarea 2, usted deberá incluir en esta tarea Osciladores (Oscillator) como el de la pregunta del certamen parcial.
 La opción "My scenario" debe cargar parcialmente la configuración indicada en el html que contiene all Applet.
  La especificación del escenario debe seguir una sintaxis del estilo:
<applet ..... lo que corresponda .....>
<param name="title" value="Physics Lab: 3 Experiencing with oscillations"/>
<param name="fixedHookNum" value="1"/>
<param name="fixedHook.1" value="poner aquí sus atributos separados por ;"/>
<param name="ballNum" value="3"/>
<param name="ball.1" value="poner aquí sus atributos separados por ;"/>
<param name="ball.2" value="poner aquí sus atributos separados por ;"/>
<param name="ball.3" value="poner aquí sus atributos separados por ;"/>
<param name="oscillatorNum" value="1"/>
<param name="oscillator.1" value="poner aquí sus atributos separados por ;"/>
<param name="deltaTime" value="0.001"/>
<param name="refreshTime" value="0.03"/>
<param name="maxPlotTime" value="30"/>
</applet>
   Los resortes deben ser incorporados usando la interfaz gráfica. Ciertamente toda la configuración puede ser incorporada usando la interfaz gráfica. Además se desea que la colisión de bolas genere un sonido corto.
   El Applet además muestra tres gráficos. Uno muestra la energía potencial total del sistema (resortes), otro la energía total cinética (todas la bolas), y el tercero la energía mecánica total; es decir, suma de ambos previos.

Trabajo a desarrollar
Desde un punto de vista de la simulación, esta tarea tiene la misma descripción que la tarea 2.
El Applet debe dividir el área de despliegue en con un JSplitPane para separar la zona de simulación del gráfico. A la izquierda debe verse la simulación.  El gráfico debe mostrar sólo el últimos N segundos de la simulación, donde N es un parámetro especificado en el HTML (default = 30 segundos). El nombre de este parámetro en el html es "maxPlotTime".
Bajo el menú MyWorld, incorpore la opción "Reset Plot". Ésta inicia el gráfico desde cero hasta maxPlotTime segundos. Se descarta la historia pasada.
Prepare sus archivos para incluir una clase PhysicsLab que permita ejecutar su solución como aplicación y la clase PhysicsLabApplet que lo haga como applet. Para el caso de PhysicsLab use los parámetros por omisión (no serán especificados por ningún html).

Resultados Esperados de su Grupo
Entregue todo lo indicado en Normas de Entrega de Tareas.
Su makefile debe ofrecer las siguientes opciones:
$ make jar
Debe preparar un archivo PhysicsLab.jar que incluya todo lo requerido para la ejecución de su applet.

Incluya un archivo PhysicsLab.html que permita correr su applet vía browser. Este archivo también se usa en opción:
$ make runApplet
Para probar su applet usando appletviewer.

Además de correr como applet, su trabajo debe permitir su ejecución como aplicación usando:
$ make run
o bien usando:
$ java -jar PhysicsLab.jar

Ayudas
En lugar de JFrame considere el uso de JInternalFframe.
Puede ver mi solución, tal vez parcial, de la tarea 2.
Más ayuda será provista según surjan consultas de parte de ustedes.

Nota
Al usar oscilador se debería apreciar variaciones de la energía total.