Marchesi Fabio
mat. 107529
Menu






Descrizione del problema
Analisi
Progetto
Implementazione
Casi d’uso
Concetti e tecniche acquisiti
Menu codice


TestAppl.java
appl.html
Descrizione del problema
In questa esercitazione ci si propone di creare una pagina html che contenga un’ applicazione semplice per visualizzare
delle figure geometriche su un pannello grafico. L’ applicazione deve offrire all’ utente un’ interfaccia grafica che
permetta di scegliere ed impostare vari parametri del disegno. L’ applicazione , essendo parte integrante di una pagina
web , deve essere accessibile da qualunque host remoto e quindi essere eseguita direttamente nel browser dell’ utente.
Analisi
Partendo da un software già progettato in precedenza , quello relativo al calcolo e visualizzazione di varie figure
geometriche , si va ad aggiungere un’ interfaccia che permetta all’ utente la scelta di varie opzioni : il numero di passi
che il plotter deve eseguire , il tipo di figura che deve disegnare (dunque il tipo di macchina genera punti) ed infine un
pulsante per avviare la visualizzazione.L’ interfaccia grafica deve essere eseguita all’ apertura della pagina HTML
appl.html.
Progetto
Per implementare ciò che ci viene chiesto ci dobbiamo concentrare sulla parte prettamente grafica e di networking dell’
esercitazione , dato che la parte di disegno vettoriale ci è già nota dal software precedentemente progettato . In
particolare ci si concentrerà sull’ addattamento del vecchio main dell’ applicazione in modo da trasformarlo in una
applet per definizione richiamabile all’ interno del codice HTML di una pagina web (si è scelto di far partire l’
applicazione all’ apertura della pagina da parte del browser); per operare la trasformazione bisognerà eliminare il main
dal componente software originale e sostituirlo con il metodo init caratteristico delle applet . All’ interno di questa
applet appena creata si dovrà poi costruire la parte dell’ interfaccia grafica instanziando i vari componenti grafici come
già visto nell’ esercitazione sul package SWING di java : questa parte avverrà dunque durante il metodo init() dell’
applet. In fine la procedura di disegno del grafico verrà lanciata direttamente dall’ ascoltatore delle azioni del pulsante
“START” .
Implementazione
TestAppl.java
import
import
import
import
tools.*;
javax.swing.*;
java.awt.*;
java.awt.event.*;
import java.net.URL;
/**
* Testing some PointGeneration machines.
*/
public class TestAppl extends JApplet implements ActionListener{
JButton butt=new JButton("START");
JTextField txt=new JTextField("",2);
JComboBox combo = new JComboBox();
public int iter;
PointGenerator ob;
public void init() {
Container c = getContentPane();
c.setBackground(SystemColor.window);
c.setLayout(new BorderLayout());
SpiralGenerator s = new SpiralGenerator();
Polygen poly= new Polygen(0.2f,0.2f,6,0.3f);
PoligonGenerator p= new PoligonGenerator(9,0.5f);
combo.addItem(poly);
combo.addItem(s);
combo.addItem(p);
JPanel main = new JPanel();
main.setLayout(new BorderLayout());
JPanel basso = new JPanel();
JPanel centro = new JPanel();
centro.add(combo);
centro.setLayout(new FlowLayout());
main.add(centro,BorderLayout.CENTER);
main.add(basso,BorderLayout.SOUTH);
butt.addActionListener(this);
txt.addActionListener(this);
basso.add(butt);
JLabel lab = new JLabel("Iterazioni");
centro.add(lab);
centro.add(txt);
c.add(main);
}
//public AppletDemo() {
//this(true);}
public void actionPerformed(ActionEvent e){
Object o = e.getSource();
if(o==butt){
// create a Plotter
SimplePlotter
plotter=new SimplePlotter(300,300);
// create a PointGenerator
//PointGenerator
machine=new Polygen(0.1f,0.2f,6,0.2f);
// create a simulation
Simulation
simulation=new Simulation();
// set the simulation plotter
simulation.setCurrentPlotter(plotter);
// set the simulation point generator
simulation.setCurrentPointGenerator(ob);
// set 5 ms as delay between two steps
simulation.setDelay(100);
// reset the simulation
simulation.reset();
// execute a number iter of simulation steps
simulation.execute(iter);
}
if(o==txt){
iter = Integer.parseInt(txt.getText());
}
if(o==combo){
ob=(PointGenerator) combo.getSelectedItem();}
}
}
appl.html
<HTML><HEAD>
<TITLE> Applet </TITLE>
</HEAD> <BODY>
<APPLET CODE="TestAppl.class" WIDTH=200 HEIGHT=250 >
</APPLET>
</BODY>
</HTML>
Casi d’ uso
E’ stata usata la applet all’ interno di una pagina web semplicissima creata unicamente per mostrare il funzionamento
del software, infatti contiene un unico tag che dichiara il nome della classe java da caricare , la larghezza e l’ altezza
della finestra in cui verrà visualizzata l’ applicazione .
Concetti e tecniche acquisite
In questa esercitazione è stato posto l’ accento sulla creazione di applicazioni che possono essere eseguite da un
computer remoto che apra la pagina web che le ospita. Questa tecnica si è molto diffusa sulla rete perché consente di
rendere disponibile una applicazione ad un grande numero di utenti a cui non serve altro che un browser dotato di una
macchina virtuale java (ormai cosa comune) per usufruire dei servizi di questo software.