Gli applet finalmente!

Scrivere un programma che faccia uso di mouse,grafica,etc come un applet e' ancora piu' difficile. Bisogna conoscere le librerie di classi disponibili e quali sono le classi che vanno usate o modificate e quali metodi saranno usati dal "sistema" per comunicare col vostro programma.
Inoltre un messaggio puo' essere inviato anche dall'utente tramite un evento come cliccare col mouse e bisogna conoscere tutti gli eventi e come devono essere trattati nel programma. Ad esempio per scrivere il classico CiaoATutti sotto forma di applet dobbiamo sapere che:
  1. Netscape si aspetta che gli scriviate una classe modificando quella di libreria chiamata "Applet"
  2. Per dipingere il contenuto dell'applet Netscape chiama il metodo(routine) paint della stessa classe che va percio' ridefinita.
  3. La classe "Graphics" permette di disegnare definendo un "contesto grafico" con metodi come drawString etc.
    import java.awt.*;
    import java.applet.*;
    public class CiaoATutti1 extends Applet {
    
     public void paint(Graphics g){
       g.drawString("CiaoATutti",5,25);
      }
     }
    

    Una semplicisissima interazione come una scritta che segue il mouse,richiede le seguenti conoscenze:
    1. Quando l'utente fa "qualcosa" Netscape richiama una routine diversa a seconda dell'azione. Se si muove il mouse chiama "mouseMove" che dobbiamo percio' riscrivere, per ottenere l'effetto desiderato.
    2. Le informazioni su cosa e' successo sono passate alla routine attraverso parametri e un oggetto "Event".
    3. Per aggiornare il disegno nella finestra occorre chiamare repaint() ; non paint() ! che puo' essere chiamata solo da Netscape.
    4. Prima che l'applet sia disegnato da paint() ,Netscape richiama una routine init() dove possiamo inizializzare le nostre variabili e fare un primo disegno dell'applet.
    5. Possiamo ottenere le dimensioni dell'applet con size().width e size.height
    
    import java.awt.*;
    import java.applet.*;
    public class Mousedemo1 extends Applet{
    
     int mousex , mousey;
    
     public void init(){
       mousex=0;
       mousey=size().height - 20;
       repaint();
       }
    
     public boolean mouseMove(Event e, int x, int y){
        mousex = x;
        mousey = y;
        repaint();
        return true;
        }
    
     public void paint(Graphics g){
        g.drawString("CiaoATutti",mousex,mousey);
        }
     }
    

    Sempre piu' difficile!Ora aggiungiamo un tasto che quando viene pigiato fa riscrivere la scritta in un colore scelto a caso.
    1. Viene fornita una classe Button. Button("scritta") permette di crearlo con una scritta.
    2. handleEvent(Event e) puo' essere usata per rispondere al tasto controllando che e.target sia in effetti l'oggetto "Button" da noi creato.
    3. Possiamo usare il metodo add(oggetto) per aggiungere nella finestra dell'applet il tasto.
    4. Per definire i colori esiste un oggetto Color e vari metodi come g.setColor.
    
    import java.awt.*;
    import java.applet.*;
    public class Pigiami1 extends Applet{
    
      Button tasto;
      Color colore;
    
      public void init(){
         add(tasto = new Button("pigiami!"));
         colore = new Color(0,0,0);
         repaint();
         }
      public boolean handleEvent(Event e){
         if (e.target == tasto) {
         colore = new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));
            repaint();
            return true;
            }
         else return false;
         }
      public void paint(Graphics g){
            g.setColor(colore);
            g.drawString("CiaoATutti",20,50);
           }
     }
    

    INDIETRO a Imparate Java in un'ora
    Maintained by Giuseppe Zito.Last revised .