logo UNSA

TP JavaBeans Visibles

logo UNSA

Voici le but de la manoeuvre :

À la fin du TP, vous allez pouvoir...

Premier exercice

Il s'agit de spécialiser java.awt.Button.

Travail à effectuer :

  1. Votre classe ToggleButton doit à la fois
  2. Elle aura

Deuxième exercice

Il s'agit de déposer ToggleButton dans le BeanBox

Travail à effectuer :

  1. Compilez ToggleButton.java
  2. Créer le fichier d' archive java .jar . N'oubliez pas le fichier manifeste pour indiquer qu'il s'agit d'un JavaBean.
  3. Chargez-le dans le ToolBox, et ensuite dans le BeanBox.
  4. Testez-le, on ne sait jamais...

Troisième exercice

Il s'agit de créer votre propre listener interface.

Travail à effectuer :

  1. Allons-y...
  2. public interface ButtonListener extends java.util.EventListener {
            public void toggleString(ButtonEvent be);
    }
    Faut-il autre chose ?

Quatrième exercice

Il s'agit de créer votre propre type d'événement.

Travail à effectuer :

  1. Idem
  2. public class ButtonEvent extends java.util.EventObject {
            public ButtonEvent(Object src) {
                    super(src);
            }
    }

Cinquième exercice

Votre ToggleBean communiquera avec d'autres JavaBeans en leur balançant des événements quand on lui clique dessus. Pour indiquer qu'il est intéressé par un tel click, un bean doit s'inscrire auprès du ToggleBean, donc celui-ci a besoin de gérer les intéressés. Pour ce faire, il lui faut la variable et les deux méthodes que nous allons définir..

Travail à effectuer :

  1. Une variable Vector listeners qui servira pour stocker les prétendents
  2. import java.util.Vector;
    
    public class ToggleButton {
            private Vector listeners = new Vector();
    
            // les constructeurs
            // les méthodes
    }
    Voir Vector pour en savoir plus.
  3. Une méthode pour ajouter les intéressés
  4.         public void addButtonListener(ButtonListener bl) {
                    System.out.println("registering " + bl);
                    listeners.addElement(bl);
            }
  5. Une méthode pour en enlever
  6.         public void removeButtonListener(ButtonListener bl) {
                    System.out.println("removing " + bl);
                    listeners.removeElement(bl);
            }
Les noms addXxxListener et removeXxxListener sont obligatoires pour indiquer au BeanBox (ou tout autre outil) que ToggleButton est capable de déclencher des événements de type XxxEvent. Ceci est un design pattern

Sixième exercice

Les écouteurs se sont inscrits, il ne reste qu'à déclencher l'événement.

Travail à effectuer :

  1. Il faut refaire la méthode actionPerformed pour déclencher un ButtonEvent quand ToggleButton est poussé
  2.         public void actionPerformed(ActionEvent ae) {
                    System.out.println("button pushed");
                    ButtonEvent be = new ButtonEvent(this);
                    for (int i=0; i<listeners.size(); i++) {
    			((ButtonListener)listeners.elementAt(i)).toggleString(be);
    		}
    	}
    
Et voilà, ToggleButton est fini. Ouf ! 

Septième exercice

Il s'agit de créer le JavaBean dérivé de Label qui réagira aux événements de type ButtonEvent. Ça sera archi-simple, chaque fois qu'il reçoit un événement, le bean récepteur change le label affiché.

Travail à effectuer :

  1. Cette classe, pourquoi pas DumDee, doit à la fois
  2. Voici une ébauche de ce bean
  3. public class DumDee extends java.awt.Label implements ButtonListener {
            private boolean even;
    
            public DumDee() {
                    super("Tweedledum");
            }
    
            public void toggleString(ButtonEvent be) {
                    if (even) {
                            setText("Tweedledum");
                            even = false;
                    } else {
                            setText("Tweedledee");
                            even = true;
                    }
                    System.out.println("toggling to " + even);
            }
    }

Huitième exercice

Il s'agit de déposer DumDee dans le BeanBox

Travail à effectuer :

  1. Compilez DumDee.java
  2. Créer le fichier d' archive java .jar pour contenir les objet d'intérêt : vos JavaBeans, l'écouteur, l'événement. N'oubliez pas le fichier manifeste pour indiquer qu'il s'agit de JavaBeans (il faut une ligne vide entre les spécifications de beans).
  3. Chargez les beans dans le ToolBox, et ensuite dans le BeanBox.
  4. Reliez le ToggleBean au DumDee et testez-les, on ne sait jamais...

Le Code


...and for what it's worth: © 1994-9X Peter Sander, Michel Buffa (except stuff belonging to others of course)
sander@essi.fr
http://www.essi.fr/~sander
buffa@essi.fr
http://www.essi.fr/~buffa