Kodama-Communication: Aplicativo de Comunicación para usuarios con Limitación Motriz y Linguistica Utilizando Imágenes

Bitacora de mi PFC

Posts Tagged ‘applet

Invocar PApplet desde una clase Java

leave a comment »

Después de varios días mirando como conseguir ejecutar un PApplet (Applet de Processing) desde código Java normal, parece que hemos encontrado una solución bastante sencilla al problema.

El inconveniente que teníamos era que para ejecutar el Applet debíamos lanzar la aplicación como Java Applet y esto no era lo que buscabamos. Lo que queríamos, era mediante un aplicación Java normal, poder lanzar el código del Applet y que éste se ejecutase realizando su cometido de forma paralela al resto del código de la aplicación.

Después de varias pruebas e intentos fallidos, la solución pasa por ejecutar el Applet dentro de un frame (o JFrame) de esta forma en cualquier momento podemos lanzar el Frame y que este a su vez lance el código del Applet dentro de él.


import java.awt.*;
import processing.core.PApplet;

public class MyClass extends Frame {

 public MyClass() {
 super("Embedded PApplet");

 setLayout(new BorderLayout());
 PApplet embed = new PAppletClass();
 add(embed, BorderLayout.CENTER);
 setSize(400,400);
 setVisible(true);

 // important to call this whenever embedding a PApplet.
 // It ensures that the animation thread is started and
 // that other internal variables are properly set.
 embed.init();
 }

 public static void main(String args[]){
 MyClass m = new MyClass();
   }
 }
 
 ----------------------------------------------------------------------

import processing.core.PApplet;

 public class PAppletClass extends PApplet {

 public void setup() {
 // original setup code here ...
 size(400, 400);

 // prevent thread from starving everything else
 noLoop();
 }

 public void draw() {
 // drawing code goes here
 }

 public void mousePressed() {
 // do something based on mouse movement

 // update the screen (run draw once)
 redraw();
   }
 }

En el siguiente enlace se puede encontrar el código de ejemplo básico donde se puede ver como implementarlo de forma sencilla, así como las explicaciones pertinentes. (en Inglés)

Otro enlace interesante, puede ser este, aunque no es la opción por la que optamos finalmente, por que nos daba problemas con la visualización de la cámara.

Espero que pueda ser de ayuda.

Un saludo,

Daniel.

Written by dafero

23 marzo 2010 at 20:02

Publicado en General

Tagged with , , ,