// MiaApplet1.java  Corso C/Java (C) Fabio Ciucci 1996 (www.anfiteatro.it)

/* ************************************************************************
 * Questa e' la nostra prima applet. Comunque e' eseguibile anche come
 * appplicazione, grazie all'inserimento del metodo main().
 * La cosa piu' lampante e' che la nostra classe e' derivata da Applet,
 * infatti nella dichiarazione si legge "extends Applet".
 * Si introduce anche il metodo paint(), che fa parte della classe
 * graphics, e disegna sull'area dell'applet che gli viene passata
 * automaticamente come un oggetto di tipo graphics:
 *
 *  public void paint(Graphics g) { ... }
 *
 * Il paint() viene eseguito all'inizio, ma anche tutte le volte che l'area
 * dell'applet viene spostata, coperta con un'altra finestra eccetera,
 * ossia quando occorre ridisegnarla, tutta o in parte.
 * Sull'oggetto "g" di tipo Graphics operiamo chiamando il suo metodo
 * drawString(), che serve a stampare stringhe di testo.
 ********************************************************************** */

import java.applet.*;      // Include le classi per le applet.
import java.awt.*;         // Include le classi per l'awt


/* ********************************************************************** */

public class MiaApplet1 extends Applet {   // Inizio della classe MiaApplet1
                                           // che tra l'altro e' derivata da
                                           // Applet.

///////////////////////////////////////////////////////////////////////////
// Il main() viene chiamato quando eseguiamo come applicazione con java.exe
///////////////////////////////////////////////////////////////////////////

   public static void main(String args[]) {   // Inizio del main...

     Frame AppFram = new Frame("MiaApplet1"); // Creo un frame grafico
                                              // inizialmente invisibile,
                                              // e lo chiamo MiaApplet1.

     MiaApplet1 MiaAppIst = new MiaApplet1();   // Istanzio l'applet

//   MiaAppIst.init();		// Se esiste init() eseguilo...
//   MiaAppIst.start();		// Se esiste start() eseguilo...

     AppFram.add("Center", MiaAppIst);  // Attacca l'applet al centro del
                                        // frame.

     AppFram.resize(160, 100);     // Ridimensiono (non ho WIDTH di html!)
     AppFram.show();               // Visualizza il frame, ora che e' OK.
   }

/*-------------------------------------------------------------------------*
 * Il paint(), che lavorera' o sull'applet o sull'applicazione.
 *----------------------------------------------------------------------- */

   public void paint(Graphics g) {    // l'oggetto g e' l'area dell'applet
     g.drawString("Salute a tutti.", 50, 50);  // Stampa in x=50, y=50
   }

/*-------------------------------------------------------------------------*
 * Questo permette l'uscita col tasto end (fine) o col q, ed e' utile
 * in quanto l'esecuzione come applicazione non fa uscire clickando il
 * gadget di chiusura della finestra.
 *------------------------------------------------------------------------*/

   public boolean keyDown(Event evento, int tasto)
   {
      if(tasto == Event.END) System.exit(0);  // Tasto Fine premuto = esci
      if(tasto == 113) System.exit(0);  // tasto q (ascii 113) = esci
      return false;
   }

}    // Fine classe MiaApplet1

/* *************************************************************************
 * Potete eseguire questa classe sia come applet che come applicazione.
 * Se la volete eseguire come applet, nell'html ci deve essere un
 * riferimento ad essa:
 *
 *  <APPLET CODE ="MiaApplet1.class" WIDTH=160 HEIGHT=100>
 *    Spiacente, il browser non supporta il Java
 *  </APPLET>
 *
 *********************************************************************** */

