Java Applet使用
问题描述:
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使用的更多相关文章
- Java—Applet
1 Applet的定义 Applet是Java语言编写的,无法独立运行,但可以嵌入到网页中执行.它扩展了传统的编程结构和方法,可以通过互联网发布到任何具有Java编译环境浏览器的个体计算机上. 如下 ...
- The differences between Java application and Java applet
在Java语言中,能够独立运行的程序称为Java应用程序(Application).Java语言还有另外一种程序--Applet程序.Applet程序(也称Java小程序)是运行于各种网页文件中,用于 ...
- Java Applet与Java Application的区别
转自:http://www.educity.cn/java/500609.html 在Java语言中,能够独立运行的程序称为Java应用程序(Application).Java语言还有另外一种程序-- ...
- Java Applet与Java Application的特点
java application是应用程序,用于桌面开发,java applet是小应用程序,一般嵌入到网页里运行.applet一般用于B/S页面上作为插件式的开发,而application主要是桌面 ...
- 在浏览器运行 java applet时遇到的一些问题及其解决方法
运行 java applet时提示:您的安全设置已阻止本地应用程序运行,如何解决?如下图所示 这时候通过设置java的安全级别就可以了. 控制面板->程序->Java->安全 将安全 ...
- 使用Java Applet在客户端解压缩,以及使用证书的意义
以前解压缩是用Java Applet在客户端解压缩,而且用户不知道这回事.但是现在Chrome不支持NP API了,所以不得不把Java去掉,然后在服务器里解压缩.风险在于,解压缩以后,传输到客户端的 ...
- Java Applet实现五子棋游戏
从谷歌的AlphaGo到腾讯的绝艺,从人脸识别到无人驾驶,从谷歌眼镜到VR的兴起,人工智能领域在不断的向前迈进,也在不断深入的探索.但背后错综复杂的技术和利益成本也是很多企业亟待解决的难题.对于人工智 ...
- [java] 在linux+chrome/firefox上使用java applet
我现在的浏览器用不了java applet,我的环境是archlinux + chrome or firefox. java网站的指引是这样说的 按照这些说明操作,以便在 Ubuntu Linux 上 ...
- Java - 33 Java Applet基础
Java Applet基础 applet是一种Java程序.它一般运行在支持Java的Web浏览器内.因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序. 如下所示是独 ...
随机推荐
- sql批量修改插入数据
1.批量修改 select 'update 读者库 set 单位代码='''+新单位代码+''' where 单位代码='''+单位代码+'''' from 读者单位 ,)<'L' and is ...
- JSP标记
JSP标记是JSP页面中很重要的组成部分,JSP标记包括指令标记.动作标记和自定义标记.其中自定义标记主要讲述与Tag文件有关的Tag标记. 一 指令标记page Page指令标记,简称page指令, ...
- How to using x++ code create GL journal[AX2012]
static void FAN_GLImport(Args _args) { AxLedgerJournalTable header = new AxLedgerJournalTable(); AxL ...
- python学习第二天第一部分
备注:写程序不能写重复性的代码 学习内容:数据类型.for循环.while循环.字符编码.文件处理 一.for循环 1.简单的for循环 for i in range(10): # 此处意思为:循环r ...
- Activity(一)
一个应用程序中至少包含一个Activity,Activity启动流程:当启动一个应用程序时,android操作系统会访问该应用程序的AndroidManifest.xml文件(该文件中说明了应用程序使 ...
- C实现辗转相除法求两个数的最大公约数
什么是辗转相除法? 辗转相除法(又名欧几里德算法),它主要用于求两个正整数的最大公约数.是已知的最古老的算法. 用辗转相除法求132和72的最大公约数的步骤: 132 / 72 = 1 ... 60 ...
- Java从入门到精通——调错篇之SVN 出现 Loced错误
我在更新SVN的时候同时并打开了在这SVN上的一个文档结果导致了我更新的时候提示Loced错误 解决方法:出现这个问题后使用"清理"功能,如果还不行,就直接到上一级目录,再执行&q ...
- .NET开源工作流RoadFlow-流程设计-流程步骤设置-数据设置
数据设置是控制在流程处理过程中,当前步骤的数据显示与编辑状态,控制当前步骤哪些字段为只读,隐藏或可编辑.需要配合表单设计器使用.
- 解决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 ...
- 【6.24-AppCan移动开发大会倒计时】科大讯飞来了!
6.24 AppCan移动开发者大会进入倒计时,报名通道即将关闭! 50多家移动圈服务商将出席此次大会,讯飞开放平台也将作为参展商,为参会者带去前沿的语音技术.参会者可现场体验最新连续语音识别技术,识 ...