Using JOGL in a Java applet: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
You can use JOGL in a [http:// | You can use JOGL in a [http://java.sun.com/applets/ Java applet, which lets you run Java programs embedded in a web page. This page shows an example of how to do this. The example program just draws one triangle that fills a fixed-size frame in a web page. | ||
= Base class = | = Base class = | ||
Line 131: | Line 131: | ||
* Create a subdirectory <tt>name/wadewalker/jogl2tests/onetriangle</tt> inside your applet directory. Or if you changed the packages of the files above, create a subdirectory that matches your package names. | * Create a subdirectory <tt>name/wadewalker/jogl2tests/onetriangle</tt> inside your applet directory. Or if you changed the packages of the files above, create a subdirectory that matches your package names. | ||
* Put your <tt>OneTriangle.java</tt> and <tt>OneTriangleAWT.java</tt> files inside the subdirectory. | * Put your <tt>OneTriangle.java</tt> and <tt>OneTriangleAWT.java</tt> files inside the subdirectory. | ||
* Copy all the JOGL JARs into the applet directory as described [https://jogamp.org/wiki/index.php/Using_JOGL_in_Java_Web_Start#Setting_up_the_application_directory here]. | |||
= Compiling and JARing your program = | |||
You can compile and JAR the program exactly as we did for the [https://jogamp.org/wiki/index.php/Using_JOGL_in_Java_Web_Start#Compiling_and_JARing_your_program Java Web Start case]. | |||
= Writing the JNLP files = | |||
New-style Java applets use two [http://download.oracle.com/javase/1,5.0/docs/guide/javaws/developersguide/syntax.html Java Network Launching Protocol (JNLP)] files to find the JAR files that make up the applet. Create both JNLP files exactly as in the [https://jogamp.org/wiki/index.php/Using_JOGL_in_Java_Web_Start#Writing_the_JNLP_files Java Web Start case]. |
Revision as of 01:44, 2 August 2011
You can use JOGL in a [http://java.sun.com/applets/ Java applet, which lets you run Java programs embedded in a web page. This page shows an example of how to do this. The example program just draws one triangle that fills a fixed-size frame in a web page.
Base class
We'll use the same triangle-drawing base class for this example that we did in the Java Web Start example. Copy the code to a file called OneTriangle.java.
Applet class
Now we need a simple class that extends java.applet.Applet to form the top level of our program. Copy this code to a file called OneTriangleAWTApplet.java.
package name.wadewalker.jogl2tests.onetriangle; import java.applet.*; import java.awt.*; import javax.media.opengl.GLAnimatorControl; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLCapabilities; import javax.media.opengl.GLEventListener; import javax.media.opengl.GLProfile; import javax.media.opengl.awt.GLCanvas; import com.jogamp.opengl.util.FPSAnimator; /** * A minimal applet that draws with JOGL in a browser window. * * @author Wade Walker */ @SuppressWarnings("serial") public class OneTriangleAWTApplet extends Applet { private GLAnimatorControl glanimatorcontrol; public void init() { GLProfile.initSingleton( false ); setLayout( new BorderLayout() ); final GLCanvas glcanvas = new GLCanvas(); glcanvas.addGLEventListener( new GLEventListener() { @Override public void reshape( GLAutoDrawable glautodrawable, int x, int y, int width, int height ) { OneTriangle.setup( glautodrawable.getGL().getGL2(), width, height ); } @Override public void init( GLAutoDrawable glautodrawable ) { } @Override public void dispose( GLAutoDrawable glautodrawable ) { } @Override public void display( GLAutoDrawable glautodrawable ) { OneTriangle.render( glautodrawable.getGL().getGL2(), glautodrawable.getWidth(), glautodrawable.getHeight() ); } }); glcanvas.setSize( getSize() ); add( glcanvas, BorderLayout.CENTER ); glanimatorcontrol = new FPSAnimator( glcanvas, 30 ); } public void start() { glanimatorcontrol.start(); } public void stop() { glanimatorcontrol.stop(); } public void destroy() { } }
Applet web page
Finally, the applet needs a web page to display in. Note that this file sets the fixed size of the applet window. Copy this code to a file called OneTriangleApplet.html.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>OneTriangle Applet Test</title> </head> <body> <P> Test of OneTriangle as an applet. </P> <P> <applet code="org.jdesktop.applet.util.JNLPAppletLauncher" width=600 height=400 archive="applet-launcher.jar, newt.all.jar, nativewindow.all.jar, jogl.all.jar, gluegen-rt.jar, onetriangle.jar"> <param name="codebase_lookup" value="false"> <param name="subapplet.classname" value="name.wadewalker.jogl2tests.onetriangle.OneTriangleAWTApplet"> <param name="subapplet.displayname" value="OneTriangle Applet"> <param name="noddraw.check" value="true"> <param name="progressbar" value="true"> <param name="jnlpNumExtensions" value="1"> <param name="jnlpExtension1" value="JOGL.jnlp"> <param name="jnlp_href" value="OneTriangleApplet.jnlp"> </applet> </P> <P> The applet should be above this. </P> </body> </html>
Setting up the applet directory
- Create a directory to hold your applet.
- Put your OneTriangleApplet.html file in that new directory.
- Create a subdirectory name/wadewalker/jogl2tests/onetriangle inside your applet directory. Or if you changed the packages of the files above, create a subdirectory that matches your package names.
- Put your OneTriangle.java and OneTriangleAWT.java files inside the subdirectory.
- Copy all the JOGL JARs into the applet directory as described here.
Compiling and JARing your program
You can compile and JAR the program exactly as we did for the Java Web Start case.
Writing the JNLP files
New-style Java applets use two Java Network Launching Protocol (JNLP) files to find the JAR files that make up the applet. Create both JNLP files exactly as in the Java Web Start case.