问题描述:

      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. Linux安装VritualBox实现虚拟机win2003端口映射 支持远程

    1. 使用VNC登录到Linux系统 2. 安装VritualBox 找到VritualBox的软件包 这里的是run格式的 可以直接在终端运行  需要几分钟时间 3.VritualBox新建虚拟机 ...

  2. MongoDb 2.4 beta新特性——全文索引

    期待已久的特性,但目前仍然在beta阶段,所以官方建议不要在生产环境使用.也因此需要手动打开这个特性. 在命令行指定 mongod --setParameter textSearchEnabled=t ...

  3. 集群session的一致性

    一. 何为session 用户使用网站的服务,基本上需要浏览器和web服务器进行多次交互,web服务器如何知道哪些请求是来自哪个会话的? 具体方式为:在会话开始时,分配一个唯一的会话标识(sessio ...

  4. How to executing direct SQL statements [Axapta, AX4.0, AX2009, AX2012]

    Today I want to talk about executing SQL statements in X++ on both the current AX database and exter ...

  5. c# float和double的“坑”

    定义一个float类型的变量=0.7,结果在IL中却是0.69999999. 乘以10之后,获取整数值.得到的却是6.通过查看IL,竟然被转换成double类型再转换.就变成6了. Demo: IL: ...

  6. 多分类问题multicalss classification

    多分类问题:有N个类别C1,C2,...,Cn,多分类学习的基本思路是"拆解法",即将多分类任务拆分为若干个而分类任务求解,最经典的拆分策略是:"一对一",&q ...

  7. SSD1306驱动的OLED实验

    [转]http://bbs.21ic.com/icview-434543-1-1.html 前面几章的实例,均没涉及到液晶显示,这一章,我们将向大家介绍OLED的使用.在本章中,我们将使用战舰STM3 ...

  8. CMD怎样建立文件?

    一.建立空文件的几种方法1.cd.>a.txtcd.表示改变当前目录为当前目录,即等于没改变:而且此命令不会有输出.>表示把命令输出写入到文件.后面跟着a.txt,就表示写入到a.txt. ...

  9. LaTeX中无法显示中文问题

  10. VC中实现GCC的2个比较常用的位运算函数

    在GCC中内嵌了两个位运算的函数,但在VC中并没有这两个函数(有相似函数). //返回前导的0的个数. int __builtin_clz (unsigned int x) //返回后面的0个个数,和 ...