Llamar a métodos de un Applet Java desde javascript

De ChuWiki

Es posible desde javascript llamar a un método de un applet dentro de la página. Para ver cómo, un ejemplo.

Primero un Applet tonto

import javax.swing.*;
public class applet extends JApplet
{
	private JLabel etiqueta = new JLabel("Hola");
	public void init()
	{
		add(etiqueta);
	}

	public void cambia()
	{
		etiqueta.setText("Adios");
	}
}

Básicamente tiene un JLabel que pone "Hola" y un método cambia() que cambia esa etiqueta por "Adios". Al visualizar el Applet se ve "Hola".

Ahora, una página html con el Applet y algo de javascript

<html>
   <head>
      <!-- El javascript, una funcion que obtiene el applet usado su id y llama al metodo cambia -->
      <script>
         function pulsado()
         {
            var applet = document.getElementById('idApplet'); //Objeto del applet embebido en la pagina
            applet.cambia();
         }
      </script>
   </head>
   <body>

      <!-- El applet, con un id que permita identificarlo -->
      <p><applet id="idApplet" code="applet" width="200" height="100"></applet></p>

      <!-- Un boton que al pulsarlo llame al metodo pulsado() de javascript -->
      <FORM name="formDisplay">
         <INPUT ENGINE="button" NAME="boton" VALUE="Adios" onClick="pulsado()"></INPUT>
      </FORM>
   </body>
</html>

Listo. Basta compilar el applet para obtener el applet.class, colocar tanto el html como el .class en el mismo directorio y visualizarl el html con un navegador. Por supuesto, hay que tener la máquina virtual de java activada en el navegador y javascript.