Esercitazioni JAVA


pagine di Roberto Ricci L.S. "A. Righi", Bologna. Ultima revisione


 
 
 

Per iniziare


 
  1. Inserire il floppy personale per salvare le esercitazioni nel dirive A:
  2. Aprire il file fond1eo\Es7.htm per leggere e seguire l'esercitazione
  3. Ridurre le dimensioni della finestra che deve restare visibile ma consentire la visibilità di un'altra nuova finestra

 
 

Applet Java


  Una Applet è una (piccola) applicazione incorporata nella pagina web:

dal CorsoJava di David Eck

  1. Per rendersi conto dell'interattiività dell'Applet "afferrare" qualcosa al centro dell'immagine con il mouse e tenendolo premuto trascinare questo qualcosa verso il bordo.
  2. Aprire il file Es7.htm e leggere il sorgente HTML di questa esercitazione
  3. Ricercare i marcatori <applet> ...</applet> mediante i quali viene inserito nella pagine l'Applet Moire1.class
  4. Modificare i valori di 'width' e 'height', salvare con File|Salva poi aggiornare la pagina con Visualizza|Aggiorna
  5. Modificare i valori di alcuni parametri e ancora osserva i conseguenti cambiamenti nella pagina

 
 

Classi Applet e Graphics


  Per realizzare un applet (alla lettera: "applicazioncina") occorre descrivere una classe che estende la classe Applet del package java.applet.
La classe Graphics del package java.awt (AWT = Abstract Windowing Toolkit) costruisce oggetti che possono essere associati a un applet fornendo un contesto grafico. In particolare il metodo void drawString(String s, int x, int y) consente di scrivere un testo s a partire dal punto di coordinate (x,y).
Il tag <applet> comanda al browser di scaricare il bytecode della classe applet dichiarata, crea un nuovo oggetto di questa classe, cerca e lancia metodi come paint(Graphics g).
    1. Redigere un file HTML contenente nel corpo il testo seguente
      <applet code="ProvApplet1.class" width="300" height="200">
      </applet>
      
    2. Redigere il file ProvApplet1.java con il contenuto seguente e compilarlo.
      import java.applet.Applet;
      import java.awt.Graphics;
      
      public class ProvApplet1 extends Applet{
      	public void paint(Graphics g){
      		g.drawString("Applet",getWidth()/2,getHeight()/2);
      	}
      }
      
    3. Assicurarsi che il file ProvApplet1.class sia nella stessa cartella del file HTML lanciando il quale, al suo interno, viene mandata in esecuzione l'applet.
    1. Utilizzare il metodo String getParameter(String s) per leggere il valore di un parametro indicato nel file HTML
      import java.applet.Applet;
      import java.awt.Graphics;
      
      public class ProvApplet2 extends Applet{
      	public void paint(Graphics g){
      		String msg=getParameter("msg");
      		int x=Integer.parseInt(getParameter("x"));
      		int y=Integer.parseInt(getParameter("y"));
      		g.drawString(msg,x,y);
      	}
      }
      
    2. A sua volta nel tag <applet> del file HTML andrà inserita una lista di parametri.
      <applet code="ProvApplet2.class"  width="300" height="200">
      	<param name="msg" value="Applet">
      	<param name="x" value="10">
      	<param name="y" value="150">
      </applet>
      
    1. Modificare l'applet precedente utilizzando alcuni altri metodi della classe Graphics; inoltre i metodi getWidth() e getHeight() restituiscono le dimensioni della finestra dell'applet.
      import java.applet.Applet;
      import java.awt.Graphics;
      
      public class ProvApplet4 extends Applet{
      	public void paint(Graphics g){
      		String msg=getParameter("msg");
      		int x=Integer.parseInt(getParameter("x"));
      		int y=Integer.parseInt(getParameter("y"));
      		g.setFont(new Font("Serif",Font.BOLD,24));
      		g.setColor(Color.red);
      		g.drawString(msg,x,y);
      		g.setColor(Color.blue);
      		g.drawLine(x,0,x,getHeight());
      		g.drawLine(0,y,getWidth(),y);
      	}
      }
        

 
 

Gestione di eventi


  L'interazione tra l'utente e un'interfaccia grafica costituisce un 'evento' che deve essere previsto e gestito dall'applicazione.
Componenti sui quali avviene l'azione, eventi e gestori sono tutti oggetti: Ad esempio l'evento potrebbe essere una certa azione del mouse su un certo componente (il cursore del mouse deve cioè trovarsi entro i limiti del componente) dell'interfaccia. In questo caso:
    1. provare l'applet seguente, che mostra un testo a partire dal punto in cui viene premuto il tasto destro del mouse
      import java.applet.Applet;
      import java.awt.Graphics;
      import java.awt.event.MouseListener;
      import java.awt.event.MouseEvent;
      
      public class ProvApplet5 extends Applet{
      	
         public ProvApplet5(){  
      
            // aggiunge gestore (listener) dell'evento 'pressione sul mouse'         
      
            class GestoreMousePress implements MouseListener{  
               public void mousePressed(MouseEvent event){  
                  x = event.getX();
                  y = event.getY();
               }
               // altri metodi lasciati inerti
               public void mouseReleased(MouseEvent event) {}
               public void mouseClicked(MouseEvent event) {}
               public void mouseEntered(MouseEvent event) {}
               public void mouseExited(MouseEvent event) {}
      
            }
               
            MouseListener gestore = new GestoreMousePress();
            addMouseListener(gestore);
         }
      
         public void paint(Graphics g){
      		g.drawString("Applet",x,y);
         }
      	
         private int x=100;
         private int y=100;
      }
      
    2. modificare l'applet in modo da visualizzare le coordinate del punto nel quale si fa click
    3. Provare la seguente applet e analizzarne il sorgente MouseTestoDemo.java

    1. Mettere alla prova il seguente applet che calcola la somma dei primi n numeri naturali

    2. Analizzare il file sorgente in fond1eo\Triang.java individuando la presenza di componenti delle classi TextField, e Button nonché del metodo getSource() della classe EventObject che restituisce l'oggetto sul quale accade l'evento.
    3. Modificarlo per calcolare la somma dei reciproci dei primi n numeri naturali

 
  NOTA: Al termine di ogni sessione di lavoro fare una copia del floppy e poi spegnere il computer con Start/Chiudi sessione/Arresta il sistema.
pagine di Roberto Ricci L.S. "A. Righi", Bologna. Ultima revisione