L'oggetto applet

Argomenti trattati: applet Java, interazione tra JavaScript e le applet.

Con il termine di applet si intende una piccola applicazione scritta in linguaggio Java, generalmente a carattere grafico, che viene utilizzata da una pagina web.

Una applet viene introdotta in una pagina web tramite il tag <applet></applet>, che può a sua volta contenere vari attributi.

Nonostante la somiglianza tra i nomi Java e JavaScript i due linguaggi, creati per scopi alquanto differenti, sono molto distanti fra loro e la descrizione delle caratteristiche delle classi Java andrebbe ben oltre lo scopo di questo sito.

JavaScript può interagire con le applet: può richiamarne i metodi e assegnare i valori alle variabili del file .class (ovvero il file che permette all'interprete Java di eseguire la applet), così come una applet può accedere alle variabili, alle proprietà e ai metodi di uno script.

In questa pagina sarà descritto solamente il primo tipo di interazione, ossia come si possano ottenere i valori restituiti dalla applet e come si possano richiamare nel codice JavaScript.

Ci sono 2 modi per accedere all'oggetto applet in JavaScript: 

Si può usare anche la sintassi: document.applets[nome_applet], dove nome_applet corrisponde ad una variabile cui è assegnato il nome dell'applet definito nel tag.
Infatti, poiché vi possono essere più applet nello stesso documento, è corretto parlare di collection di applet, l'insieme dei tag <applet> </applet> nel documento HTML considerato.

E' possibile inoltre essere richiamare le proprietà e i metodi della classe che costituisce la applet.

Sarà perciò esaminato un semplicissimo codice che mostra come possa essere generata una applet di esempio:

import java.applet.applet;
import java.awt.Graphics;

public class Miaapplet extends applet
{
  public String strv = "Una stringa in un'applet java..."; // una variabile stringa in Java
  public int intv=100; // una variabile di tipo int in Java
  public double dblv=100.333; // una variabile di tipo double in Java
  public boolean boolv=true; // una variabile di tipo boolean in Java

  public void paint(Graphics g) // il metodo paint, nella applet, permette di scrivere una frase
  {
    g.drawString(strv, 35, 56); // la frase corrisponde al valore della stringa strv
  }
// il metodo strvm restituisce una stringa e la riscrive visualizzandola nella applet
  public String strvm(String _strv) 
  {
    strv = _strv;
    repaint();
    return strv;
  }
public int intvm() // tutti i metodi seguenti restituiscono le variabili della classe Miaapplet
{
   return intv;
}
 public double dblvm()
{
  return dblv;
}
 public boolean boolvm()
 {
    return boolv;
 }
}

visualizza esempio

La classe Miaapplet permette di disegnare una stringa nel riquadro dedicato alla applet. Essa però possiede una serie di metodi, che restituiscono tutte le variabili campi della classe. E' necessario che sia i metodi che le variabili d'istanza, ovvero le proprietà della classe, siano dichiarati public, o non è possibile accedervi.

Il codice HTML dell'esempio, mostra come JavaScript possa richiamare i metodi e le proprietà della classe:

<!-- NB: eventuali paragrafi a capo nel codice JavaScript sono dovuti  a motivi di visualizzazione delle pagine -->

<html>
<head>
<script Language="JavaScript">

<!--//

var s;
function converti()
{
     alert('boolv= ' + typeof(document.Objapplet.boolvm()));
     alert('intv= ' + typeof(document.Objapplet.intvm())); 
     alert('dblv= ' + typeof(document.Objapplet.dblvm())); 
     alert('strv= ' + typeof(document.Objapplet.strvm("Questa stringa corrisponde a una variabile di tipo string in             JavaScript!"))); // la linea a capo è dovuta alla sola esigenza di visualizzazione
}

//-->
</script>
</head>
<body text="#008000" bgcolor="#FFC0CB" link="#008000" vlink="#008000" alink="#008000">

<center><b>Esempio di interazione con l'oggetto applet in JavaScript:</b>
<br>

// esempio di attributi nel tag <
applet></applet>

<p><applet NAME="Objapplet" CODE="Miaapplet.class" WIDTH=450 HEIGHT=100></applet>
<hr align="center" width="75%" heigth="3" color="white"></center>
<form>
<ul>&nbsp;
<table WIDTH="85%" heigth="3" color="white" >
<tr>
<td size="30%"><input type="button" name="nome_applet" value="click!" 

onClick="if(!document.layers) alert('document.Objapplet.name: \n' + document.applets[0].name); else alert('Questa properietà è visibile soltanto su Microsoft Internet Explorer!');">
</td>

<td size="70%">
<li>
Questo bottone richiama il nome dell'oggetto applet!</li>
</td>
</tr>

<tr>
<td size="30%"><input type="button" name="prop_strv" value="click!"

 onClick="alert('document.Objapplet.strv.value: \n' + document.Objapplet.strvm('Ho modificato la proprietà!'))">

</td>

<td size="70%">
<li>
Questo bottone modifica il valore della propriet&agrave; strv dell'oggetto
applet!</li>
</td>
</tr>

<tr>
<td size="30%"><input type="button" name="prop_boolv" value="click!"

 onClick="alert('document.Objapplet.boolv.value: \n' + document.Objapplet.boolvm())">

</td>

<td size="70%">
<li>
Questo bottone richiama il valore della propriet&agrave; boolv dell'oggetto
applet!</li>
</td>
</tr>

<tr>
<td size="30%"><input type="button" name="prop_intv" value="click!"

 onClick="alert('document.Objapplet.intvm.value: \n' + document.Objapplet.intvm())">

</td>

<td size="70%">
<li>
Questo bottone richiama il valore della propriet&agrave; intv dell'oggetto
applet!</li>
</td>
</tr>

<tr>
<td size="30%"><input type="button" name="prop_dblv" value="click!"

 onClick="alert('document.Objapplet.dblv.value: \n' + document.Objapplet.dblvm())">

</td>

<td size="70%">
<li>
Questo bottone richiama il valore della propriet&agrave; dblv dell'oggetto
applet!</li>
</td>
</tr>

<tr>
<td size="30%"><input type="button" name="conversione" value="click!"
onClick="converti()"></td>

<td size="70%">
<li>
Questo bottone mostra la conversione dei tipi di variabile da Java a JavaScript!</li>
</td>
</tr>
</table>
</ul>
</form>
</body>
</html>

Il metodo converti() restituisce il tipo di variabile Java convertendolo in una variabile JavaScript tramite il metodo tipeof(). Infatti, mentre nel linguaggio Java ogni tipo di variabile deve essere rigorosamente definito, in JavaScript non è necessario definire se una variabile var x sia una stringa, un intero o un booleano. Questi concetti sono stati approfonditi nella sezione relativa alle variabili.


Torna all'inizio | Home