L'applet Carte1

Déclarations

L'applet Carte1 contiendra un paysage et 3 boutons de gestion des Ovnis. Elle implémente l'interface ActionListener pour réagir aux clics sur les boutons.

Ceci nous donne le code suivant :

    import java.awt.*;
    import java.applet.*;
    import java.awt.event.*;
 
    public class Carte1 extends Applet implements ActionListener {
     Paysage pays;
     Button rien;
     Button neige;
     Button pluie;

La méthode init

Nous installons les différents composants et nous indiquons que c'est l'applet qui répondra aux évènements générés par les boutons.

     public void init() {
      //image de fond
      Image img=getImage(getCodeBase(),"paysage.jpg");
      MediaTracker mt=new MediaTracker(this);
      mt.addImage(img,1);
      try {
       mt.waitForID(1);
      } catch (Exception e) {}
      //composants
      //le paysage
      setLayout(new BorderLayout());
      pays=new Paysage(img);
      add(pays,BorderLayout.CENTER);
      //les boutons dans un Panel
      Panel p=new Panel();
      add(p,BorderLayout.SOUTH);
      rien=new Button("Stop");
      rien.addActionListener(this);
      p.add(rien);
      neige=new Button("Neige");
      neige.addActionListener(this);
      p.add(neige);
      pluie=new Button("Pluie");
      pluie.addActionListener(this);
      p.add(pluie);
     }

Démarrage et fin de l'animation

Nous utilisons les méthodes start et stop de l'applet pour démarrer et terminer l'animation.

     public void start() {
      //démarrer l'animation
      pays.startAnim();
     }
 
     public void stop() {
      //stopper l'animation
      pays.stopAnim();
     }

Gestion des boutons

La méthode actionPerformed permet de remplir ou de vider le tableau des Ovnis du paysage selon le bouton utilisé.

     public void actionPerformed(ActionEvent e) {
      //action des boutons
      if (e.getSource()==rien) {
          //on supprime les Ovnis
	  pays.resetObjs();
      }
      else if (e.getSource()==neige) {
	  pays.resetObjs();
	  //300 flocons
	  for(int i=0; i<300; i++) {
	    pays.ajouteObjet(new Flocon(pays.largeur,pays.hauteur));
	  }
      }
      else if (e.getSource()==pluie) {
	pays.resetObjs();
	//400 gouttes
	  for(int i=0; i<400; i++) {
	    pays.ajouteObjet(new Pluie(pays.largeur,pays.hauteur));
	  }
      } 
     }

L'applet est prête à fonctionner. Il ne reste plus qu'à admirer de nouveau le résultat.



Retour au menu