问题描述:

      Java Applet使用

 

参考资料:

     http://docs.oracle.com/javase/tutorial/deployment/applet/deployingApplet.html

 

问题解决:

      Java 代码 extends JApplet

  LocCube.java文件:

package emos.position.view;

import java.awt.BorderLayout;

import com.sun.j3d.utils.behaviors.mouse.MouseRotate;
import com.sun.j3d.utils.behaviors.mouse.MouseTranslate;
import com.sun.j3d.utils.behaviors.mouse.MouseWheelZoom;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.swing.JApplet;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.vecmath.*; public class LocCube extends JApplet { private static final long serialVersionUID = 1L;
private Color color = new Color();
private JPanel panel = new JPanel(); /**
* Java3D 使用
* @return
*/
private BranchGroup createSceneGraph() {
BranchGroup objRoot = new BranchGroup(); BoundingSphere bounds = new BoundingSphere(new Point3d(0d, 0d, 0d),
100d); Background bg = new Background(color.diffuse);
bg.setApplicationBounds(bounds);
objRoot.addChild(bg); Transform3D ts = new Transform3D(); ts.rotX(-(double) Math.PI / 8); // 旋转X轴
Vector3f vector = new Vector3f(-5f, -5, -25f); // 指定点平移
ts.setTranslation(vector); TransformGroup tg = new TransformGroup(ts);
tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE); /**
* 鼠标旋转
*/
MouseRotate mrot = new MouseRotate(tg);
mrot.setSchedulingBounds(new BoundingSphere());
tg.addChild(mrot); /**
* 鼠标滚轮放大
*/
MouseWheelZoom zoom = new MouseWheelZoom();
zoom.setTransformGroup(tg);
zoom.setSchedulingBounds(new BoundingSphere());
tg.addChild(zoom); /**
* 鼠标右键平移
*/
MouseTranslate translate = new MouseTranslate();
translate.setTransformGroup(tg);
translate.setSchedulingBounds(new BoundingSphere());
tg.addChild(translate); Shape3D linecube = new LineCube();
Shape3D linecross = new LineCross();
tg.addChild(linecube);
tg.addChild(linecross); objRoot.addChild(tg);
objRoot.compile();
return objRoot;
} public LocCube() {
panel.setLayout(new BorderLayout());
// setLayout(new BorderLayout());
Canvas3D c = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
panel.add("Center", c);
BranchGroup scene = createSceneGraph();
SimpleUniverse u = new SimpleUniverse(c);
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
u.getViewer().getView().setMinimumFrameCycleTime(5);
} public JPanel getPanel() {
return panel;
} public void init() {
new LocCube();
add(getPanel());
} /*
* public static void main(String[] args) { JFrame frame = new JFrame();
* LocCube panel = new LocCube(); frame.add(panel.getPanel());
* frame.setSize(200, 200); frame.setVisible(true); }
*/
}

 

JSP文件包含applet程序:

  applet.jsp文件:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<p align="center">
<applet code="emos.position.view.LocCube" archive="emos.jar" width="700"
height="500"> </applet>
</p>
<p align="center">java applet</p>
</body>
</html>

注:

      以上jsp文件,包含applet小程序的路径配置尤其需要注意,其中code表示LocCube.java 文件生成LocCube.class 文件的位置

archive表示包含LocCube.class文件的jar包文件位置,生成的jar包文件和在同一目录

      详细来说:

      1、生成emos.jar 文件

                             

         Dynamic Java Web 项目的文件目录如上所示,其中class文件位于build/classes/emos/position/view/…,使用jar工具,生成jar包文件

          

生成emos.jar 文件:

               

将如上生成的emos.jar 文件放置在WebContent目录,放置于和applet.jsp同一目录之下。其中LocCube.class位于emos.jar 文件中的

emos/position/view/目录之下。

 

  运行applet.jsp 文件: 

注:

      第一次在浏览器中使用applet小程序,需要安装Java插件,安装成功之后,配置Java插件支持浏览器类型:

    

如上图所示,包含了Java所在位置:控制面板——程序,以及设置java插件浏览器支持类型

运行结果如下:

Java Applet使用的更多相关文章

  1. Java—Applet

    1  Applet的定义 Applet是Java语言编写的,无法独立运行,但可以嵌入到网页中执行.它扩展了传统的编程结构和方法,可以通过互联网发布到任何具有Java编译环境浏览器的个体计算机上. 如下 ...

  2. The differences between Java application and Java applet

    在Java语言中,能够独立运行的程序称为Java应用程序(Application).Java语言还有另外一种程序--Applet程序.Applet程序(也称Java小程序)是运行于各种网页文件中,用于 ...

  3. Java Applet与Java Application的区别

    转自:http://www.educity.cn/java/500609.html 在Java语言中,能够独立运行的程序称为Java应用程序(Application).Java语言还有另外一种程序-- ...

  4. Java Applet与Java Application的特点

    java application是应用程序,用于桌面开发,java applet是小应用程序,一般嵌入到网页里运行.applet一般用于B/S页面上作为插件式的开发,而application主要是桌面 ...

  5. 在浏览器运行 java applet时遇到的一些问题及其解决方法

    运行 java applet时提示:您的安全设置已阻止本地应用程序运行,如何解决?如下图所示 这时候通过设置java的安全级别就可以了. 控制面板->程序->Java->安全 将安全 ...

  6. 使用Java Applet在客户端解压缩,以及使用证书的意义

    以前解压缩是用Java Applet在客户端解压缩,而且用户不知道这回事.但是现在Chrome不支持NP API了,所以不得不把Java去掉,然后在服务器里解压缩.风险在于,解压缩以后,传输到客户端的 ...

  7. Java Applet实现五子棋游戏

    从谷歌的AlphaGo到腾讯的绝艺,从人脸识别到无人驾驶,从谷歌眼镜到VR的兴起,人工智能领域在不断的向前迈进,也在不断深入的探索.但背后错综复杂的技术和利益成本也是很多企业亟待解决的难题.对于人工智 ...

  8. [java] 在linux+chrome/firefox上使用java applet

    我现在的浏览器用不了java applet,我的环境是archlinux + chrome or firefox. java网站的指引是这样说的 按照这些说明操作,以便在 Ubuntu Linux 上 ...

  9. Java - 33 Java Applet基础

    Java Applet基础 applet是一种Java程序.它一般运行在支持Java的Web浏览器内.因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序. 如下所示是独 ...

随机推荐

  1. sql批量修改插入数据

    1.批量修改 select 'update 读者库 set 单位代码='''+新单位代码+''' where 单位代码='''+单位代码+'''' from 读者单位 ,)<'L' and is ...

  2. JSP标记

    JSP标记是JSP页面中很重要的组成部分,JSP标记包括指令标记.动作标记和自定义标记.其中自定义标记主要讲述与Tag文件有关的Tag标记. 一 指令标记page Page指令标记,简称page指令, ...

  3. How to using x++ code create GL journal[AX2012]

    static void FAN_GLImport(Args _args) { AxLedgerJournalTable header = new AxLedgerJournalTable(); AxL ...

  4. python学习第二天第一部分

    备注:写程序不能写重复性的代码 学习内容:数据类型.for循环.while循环.字符编码.文件处理 一.for循环 1.简单的for循环 for i in range(10): # 此处意思为:循环r ...

  5. Activity(一)

    一个应用程序中至少包含一个Activity,Activity启动流程:当启动一个应用程序时,android操作系统会访问该应用程序的AndroidManifest.xml文件(该文件中说明了应用程序使 ...

  6. C实现辗转相除法求两个数的最大公约数

    什么是辗转相除法? 辗转相除法(又名欧几里德算法),它主要用于求两个正整数的最大公约数.是已知的最古老的算法. 用辗转相除法求132和72的最大公约数的步骤: 132 / 72 = 1 ... 60 ...

  7. Java从入门到精通——调错篇之SVN 出现 Loced错误

    我在更新SVN的时候同时并打开了在这SVN上的一个文档结果导致了我更新的时候提示Loced错误 解决方法:出现这个问题后使用"清理"功能,如果还不行,就直接到上一级目录,再执行&q ...

  8. .NET开源工作流RoadFlow-流程设计-流程步骤设置-数据设置

    数据设置是控制在流程处理过程中,当前步骤的数据显示与编辑状态,控制当前步骤哪些字段为只读,隐藏或可编辑.需要配合表单设计器使用.

  9. 解决mysql登陆时出现“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2)”

    mariadb同样适用 首先检查mysql状态 linux-6yo1:~ # /etc/init.d/mysql status Checking for service MySQL: unused m ...

  10. 【6.24-AppCan移动开发大会倒计时】科大讯飞来了!

    6.24 AppCan移动开发者大会进入倒计时,报名通道即将关闭! 50多家移动圈服务商将出席此次大会,讯飞开放平台也将作为参展商,为参会者带去前沿的语音技术.参会者可现场体验最新连续语音识别技术,识 ...