本文共 5705 字,大约阅读时间需要 19 分钟。
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里的方法
win.eval("javascript:showMsg('"+name+"');"); } catch (JSException e) { // TODO Auto-generated catch block e.printStackTrace(); }// doc =(JSObject)win.getMember("document");
// 下面这里直接调用方法 不成功,页面提示 找不到方法,不知道什么原因
// doc.call("showMsg", new Object[]{name}); } /** * */ 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" οnclick="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
转载地址:http://zjyxi.baihongyu.com/