/* * Created on Apr 13, 2005 by Nick Didkovsky * * added calls to JavaScript 11/17/08 * */ package didkovsky2604.applets; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; // needs jaws.jar to build import netscape.javascript.JSObject; /** * Receive messages from JavaScript. Send messages to JavaScript. * * @author Nick Didkovsky, didkovn@mail.rockefeller.edu * */ public class JavaScriptApplet extends java.applet.Applet { private Label jsLabel; private JSObject javascriptObject = null; private Button buttonToSendSomethingToJavaScript; private void sendSomethingToJavaScript() { if (javascriptObject == null) { javascriptObject = JSObject.getWindow(this); } if (javascriptObject != null) { javascriptObject.eval("foo()"); } else { System.out.println("Cannot get javascriptObject"); } } public void start() { setLayout(new FlowLayout()); setBackground(new Color(200, 200, 200)); add(new Label("Value sent from Javascript shows here: ")); add(jsLabel = new Label("xxxxxxxxxxxxxxxxx")); add(buttonToSendSomethingToJavaScript = new Button("Click to send something to JavaScript")); buttonToSendSomethingToJavaScript.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { sendSomethingToJavaScript(); } }); } /** * Any public method in this Applet can be called from JavaScript. Nothing special about the * Applet itself */ public void setValue(String value) { jsLabel.setText(value); System.out.println("setValue(" + value + ")"); } }