netscape.javascript.JSException;
netscape.javascript.JSObject;
这两个类在c:/windows/java/package/目录下有个5M左右的zip文件里,拿出来弄成jar包即可。(jre下有个小点的jar包:plugin.jar 用这个最好)
package applet;
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.Timer;
import netscape.javascript.JSException;
import netscape.javascript.JSObject;
public class Test extends Applet implements MouseListener{
int mouseX=0;
int mouseY=0;
JSObject win = null; ;
JSObject doc;
public void paint(Graphics g) {
//Draw a rectangle width=250, height=100
g.drawRect(0,0,250,100);
//Set the color to blue
g.setColor(Color.blue);
//Write the message to the web page
g.drawString("Look at me, I'm a Java ccccccc"+mouseY+" "+mouseX,10,50);
}
public void showDialogIn() throws Exception{
String name = JOptionPane.showInputDialog("请输入你的姓名:");
JOptionPane.showMessageDialog(null, "输入的姓名是:"+name);
// win.eval("javascript:alert(\""+name+"\")");
// win.eval("javascript:showMsg(\""+name+"\")");
try {
win = JSObject.getWindow(this);
win.eval("javascript:alert('bbbbbbbbbbb')");
//这里调用js里的方法
} catch (JSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// doc =(JSObject)win.getMember("document");
// 下面这里直接调用方法 不成功,页面提示 找不到方法,不知道什么原因
}
/**
*
*/
private static final long serialVersionUID = 1L;
public void init() {
System.out.println("init..........");
this.addMouseListener(this);
}
public static void showTime(JLabel jlabel) {
}
public void start() {
}
public void mouseClicked(MouseEvent e) {
JOptionPane.showMessageDialog(null,"aaa"+e.getID()+" ","提示",JOptionPane.WARNING_MESSAGE);
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
mouseX = e.getX();
mouseY = e.getY();
repaint();
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="0">
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ include file="/WEB-INF/jsp/ccs/includes.jsp" %>
<%@ taglib prefix="lms" uri="/WEB-INF/tld/lms.tld" %>
<HTML>
<HEAD>
<TITLE>MyFirstJavaApplet</title>
</HEAD>
<BODY>
Here'smyfirstJavaApplet:sdfsadfa bbbbbbbbbbbbb
<input type="button" value="go000" onclick="showWindowIn()"/>
bbbb
<applet name="Test" width="100" height="100" code="applet/Test.class" archive="netscape.jar" MAYSCRIPT>
</applet>
//以下是用htmlconverter转换后生成的
<object name="ShowTaskApplet"
classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
codebase="http://java.sun.com/update/1.6.0/jinstall-6u20-windows-i586.cab#Version=6,0,0,6"
WIDTH="0" HEIGHT="0" ALT="文件上传applet小程序">
<PARAM NAME=CODE VALUE="com.wiscom.lms.applet.FileUploadApplet.class">
<PARAM NAME=CODEBASE VALUE="./applet">
<PARAM NAME=ARCHIVE VALUE="uploadApplet.jar,commons-logging-1.1.1.jar,commons-net-3.0.1.jar,plugin.jar">
<param name="type" value="application/x-java-applet;version=1.6">
<PARAM NAME = MAYSCRIPT VALUE = "true" >
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.6">
<PARAM NAME="scriptable" VALUE="false">
<PARAM NAME="host" VALUE="172.16.41.27">
<PARAM NAME="port" VALUE="21">
<PARAM NAME="userName" VALUE="cc">
<PARAM NAME="password" VALUE="cc">
<PARAM NAME="acceptAllFileFilterUsed" VALUE="false">
<PARAM NAME="isDirectorySelectionEnabled" VALUE="true">
<PARAM NAME="ftpPath" VALUE="/aaa/bbb/">
<comment>
<embed id="app"
type="application/x-java-applet;version=1.6"
\
CODE = "com.wiscom.lms.applet.FileUploadApplet.class" \
JAVA_CODEBASE = "./applet" \
ARCHIVE = "uploadApplet.jar,commons-logging-1.1.1.jar,commons-net-3.0.1.jar,plugin.jar" \
ALT = "文件上传applet小程序" \
WIDTH = "400" \
HEIGHT = "300" \
MAYSCRIPT = true \
MAYSCRIPT = "true" \
type ="application/x-java-applet;version=1.6" \
scriptable ="false" \
host ="172.16.41.27" \
port ="21" \
userName ="cc" \
password ="cc" \
acceptAllFileFilterUsed ="true" \
isDirectorySelectionEnabled ="true" \
isFileSelectionEnabled ="true" \
fileNameExtension ="" \
isFileHidingEnabled ="false" \
isMultiSelectionEnabled ="true" \
maxFileSize ="2147483648"
scriptable = false
pluginspage = "http://java.sun.com/products/plugin/index.html#download">
<noembed>
</xmp>
</noembed>
</embed>
</comment>
</object>
<script type="text/javascript">
var DownLoad= function(){};
function showWindowIn(){
try{
//IE里用object的name firefox里用embed id //调用的方法都是applet里的public方法
var app =document.getElementById('uploadAppletApp');
if(app==null||typeof app =='undefined'){
window.document.ShowTaskApplet.showTaskFrame();
}else{
app.showTaskFrame();
}
}catch(e){
alert(e);
}
}
function showMsg(s){
alert("您输入的是:"+s);
}
</script>
</BODY>
</HTML>
===============================================================================================
以上代码不能直接运行,只是将各个关键步骤写下来,自己修改即可
===============================================================================================
附: js调用applet方法有些限制,js调用applet方法时applet的认证会失效,相当于没有认证。
见文章:http://docs.oracle.com/javase/tutorial/deployment/applet/security.html