Using JOGL in a Java applet: Difference between revisions
(Created page with 'You can use JOGL in a [http://download.oracle.com/javase/6/docs/technotes/guides/javaws/ Java applet, which lets you run Java programs embedded in a web page. This page shows an …') |
No edit summary |
||
Line 77: | Line 77: | ||
} | } | ||
</pre> | </pre> | ||
= 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 <tt>OneTriangleApplet.html</tt>. | |||
<pre> | |||
<!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> | |||
</pre> | |||
= Setting up the applet directory = | |||
* Create a directory to hold your applet. | |||
* Put your <tt>OneTriangleApplet.html</tt> file in that new directory. | |||
* 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. |
Revision as of 01:35, 2 August 2011
You can use JOGL in a [http://download.oracle.com/javase/6/docs/technotes/guides/javaws/ 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.