RELAZIONE 6
ANCARANI SILVIA
OBIETTIVI: -costruzione ed esplorazione di applet java
- utilizzo dell’applet via WEB
DESCRIZIONE DEL PROBLEMA
Costruire un Applet in java che rispecchi il funzionamento di uno dei componenti SW
generati nell’esercitazione 4 (simulazioni) per testare le macchine genera punti.
Si vuole poter inserire via GUI il n. di interazioni con cui si vuole far partire la
simulazione. A tale scopo si crei quindi un pulsante START che dia il via alla
simulazione.
Rendere poi l’applet generato fruibile via WEB creando la pagina HTML che
permette appunto di utilizzarlo.
ANALISI
Innanzitutto è necessario specificare che tutti gli applet sono sottoclassi della classe
Applet contenuta nel package java.applet.
Di particolare importanza è la caratteristica che gli applet non hanno un metodo
main( ), ma hanno metodi che vengono richiamati quando si verificano eventi
specifici durante l’esecuzione.
Innanzitutto per inizializzare l’applet si usa il metodo init( ) e al suo interno viene
definito lo stato iniziale, si possono creare oggetti necessari per l’applet, si possono
caricare immagini e caratteri.
L’altro metodo tipico dell’applet è start( ) e serve per dare l’avvio mentre, per
arrestare l’esecuzione, si dispone del metodo stop( ).
Il nostro scopo è comunque quello di creare una finestra con il pulsante per dare
l’avvio all’esecuzione ed una griglia dove inserire il n. di interazioni desiderate. A
tale scopo è necessario l’utilizzo della grafica in java e quindi dei packages java.awt e
javax.swing.
Nel metodo init( ) della classe MyPanel vengon infatti creati oggetti di tipo Jpanel,
Jlabel, Jbutton e JtextField che sono necessari a realizzare l’applet voluto.
Successivamente viene creata una simulazione e una macchina genera punti (scelta
tra quelle create nella relazione 4).
Per quanto riguarda l’inserimento dell’applet nella pagina WEB si utilizza il tag
<APPLET> che è un comando di programmazione del linguaggio HTML.
I browser abilitati per java utilizzano le informazioni contenute nel tag per creare ed
eseguire i file di classe compilati dall’applet .
La pagina HTML creata è “Test” e si può notare che viene richiamata l’esecuzione
dell’Applet1.
Nel caso in cui non si disponga di un browser abilitato per java, si utilizza il comando
appletviewer pr il collaudo degli applet ma esso visualizza solo gli applet inclusi nella
pagina WEB con l’applet. In tal modo il browser abilitato preleva ed esegue l’applet e
i file necessari ad esso.
PROGETTO
Nella class MyPanel creo una PointGenerator e ne faccio una simulazione che viene
eseguita sia come applicazione che come applet.
La classe MyPanel è una sottoclase di Jpanel e per questo nel costruttore viene
invocato super( ) per richiamare i metodi della classe base Jpanel.
Occorre creare una finestra dove visualizzare ciò che la macchina genera punti
disegna e una finestra di funzionamento dove inserire la griglia con il n. di interazioni
ed il pulsante START.
A tale scopo utilizzo la classe Frame e creo la sottoclasse MyFrame che eredita da
quella base i metodi e genera la finestra con la relativa barra del titolo e il pulsante di
chiusura.
E’ bene ricordare che i frame ereditano il loro comportamento dalla classe Window,
che eredita da Conteiner che eredita da Component e perciò i frame sono contenitori,
come pure i pannelli, a cui possiamo aggiungere altri componenti utilizzando il
metodo add( ).
Al momento della creazione la finestra è invisibile e quindi occorre mostrarla con il
metodo show( ).
Una volta creato il pulsante START a partire dalla classe Jbutton, occore associarlo
all’evento che deve generare quando viene premuto e perciò si utilizza l’interfaccia
ActionListener che viene implementata con gli opportuni metodi per la gestione di
eventi d’azione.
Nel nostro caso quando viene inserito nella griglia il n. di interazioni voluto è
necessario premere INVIO in modo che venga riconosciuto il n. immesso, e poi
premere il pulsante START per dare inizio all’esecuzione.
E’ ovvio che il pulsante START è associato alla classe ActionEvent per gestire
l’azione del componente.
Nel pannello inserisco inoltre la possibilità di scegliere il tipo di PoinGenerator
(LineGenerator, HouseGenerator o CircleGenerator) grazie alla classe JcomboBox
appartenente al package javax.swing. Anche questo evento è gestito tramite
l’interfaccia ActionListener.
Per gestire gli eventi della finestra, invece, si dispone dell’interfaccia
WindowListener implementandola con gli opportuni metodi per la chiusura, apertura
etc.. della finestra.
E’ bene notare che per mandare in esecuzione l’applicazione viene usato il file
PanelSuper.java che crea un oggetto di tipo Applet1 la cui classe di appartenenza crea
un oggetto di tipo MyPanel.
Per l’esecuzione dell’applet tramite la pagina HTML viene utilizzato invece la classe
Applet1.
IMPLEMENTAZIONE
Codice e documantazione reltivi a:
- Applet1.java
- MyPanel.java
- MyFrame.java
E’ necessario, prima dei codici, importare i seguenti packages:
° java.awt.*;
° javax.swing.*;
per la classe MyFrame;
° java.awt.*;
° javax.swing.*;
° java.applet.*;
° tools.*;
per le classi Applet1 e MyPanel
E’ possibile selezionare il tipo di PoinGenerator tra quelli creati nella relazione 4,
ossia LineGenerator, HouseGenerator e CircleGenerator. Per poter osservare
l’esecuzione dell’applicazione occorre infatti scegliere il tipo di macchina genera
punti ed inserire il n. di interazioni volute, premere poi INVIO e quindi il pulsante
START. Per una buona esecuzione si consiglia di inserire un elevato n. di interazioni
nell’applicazione di CircleGenerator, mentre per gli altri PointGenerator è meglio
mettere circa 10 interazioni o poco di più.
CASI D’USO
Codice e documentazione relativi alla classe AppletSuper e Test.html.
Prima del codice del file AppletSuper.java vengono importati alcuni packages
indispensabili per l’esecuzione:
° java.awt.*;
° javax.swing.*;
° java.applet.*;
° tools.*
L’esecuzione è possibile sia come applicazione che come applet ed è fruibile via
Internet con il file Test.html.
NOZIONI ACQUISITE
Con questo progetto ho acquisito le tecniche e i metodi necessari per la creazione e
l’esecuzione degli applet, nonché l’utilizzo via WEB del medesimo.
Ho infatti constatato una prima differenza tra applicazioni e applet ed è che il
secondo non contiene un metodo main( ) per l’esecuzione.
La classe pubblica Applet, contenuta nel package java.applet, mette a disposizione 2
tipi di comportamento che tutti gli applet devono avere:
- possibilità di funzionare come parte di un browser e gestire eventi
quali il fatto che venga ricaricata la pagina WEB;
- possibiltà di presentare un’interfaccia utente grafica e gestire gli
input degli utenti.