Exercice 4
On crée maintenant une classe IHMTPListe
qui hérite de la classe java.awt.Panel.
/*
* IHMTPListe.java
*
* Creation d'un panel qui servira a faire des applettes utilisant
* des listes.
*/
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class IHMTPListe extends Panel implements ActionListener{
private Label afficheur = new Label();
private Label resultat = new Label();
private TextField saisie = new TextField(30);
private Panel panelBoutons = new Panel();
private Button boutonAjouter = new Button("ajouter");
private Button boutonRetirer = new Button("retirer");
private ListeSpec liste;
private String nomDeLaClasse;
/** Constructeur de la classe
IHMTPListe.
* @param liste La liste utilisee dans le panel
* @param couleur Couleur du panel
*/
public IHMTPListe(ListeSpec liste,Color couleur){
this.liste = liste;
panelBoutons.setLayout(new GridLayout(3,1));
panelBoutons.setBackground(couleur);
panelBoutons.add(afficheur);panelBoutons.add(saisie);
panelBoutons.add(boutonAjouter);panelBoutons.add(boutonRetirer);
panelBoutons.add(resultat);
add(panelBoutons);
boutonRetirer.setEnabled(false);
boutonAjouter.addActionListener(this);
boutonRetirer.addActionListener(this);
saisie.addActionListener(this);
nomDeLaClasse = liste.getClass().getName();
afficheur.setText(nomDeLaClasse);
}
public void actionPerformed(ActionEvent ae){
try{
if (ae.getSource() == boutonAjouter
|| ae.getSource() == saisie)
liste.ajouterElement(new Integer(Integer.parseInt(saisie.getText())));
else if (ae.getSource() ==
boutonRetirer)
liste.retirerElement(new Integer(Integer.parseInt(saisie.getText())));
resultat.setText(liste.toString());
afficheur.setText(nomDeLaClasse);
if (liste.estVide())
boutonRetirer.setEnabled(false);
else
boutonRetirer.setEnabled(true);
}catch(ElementIntrouvableException
e){
afficheur.setText(nomDeLaClasse + ": ElementIntrouvable : " + e);
}
catch(Exception e){
afficheur.setText(nomDeLaClasse + ": Erreur : " + e);
}
}
}
On utilise alors ce panel pour faire une applette, AppletteTPListe,
utilisant les deux types de listes ( Liste et ListeBis
):
/*
* AppletteTPListe.java
*
* Appelle un panel pour creer une applette conforme a
* l'utilisation de la liste quelque soit son type.
*
* @author Antoine Jeangeot, Eric Vogt et Alexandre Seviran
* @see IHMTPListe
*/
import java.applet.*;
import java.awt.Color;
public class AppletteTPListe extends Applet {
public void init(){
Liste liste = new Liste();
ListeBis listebis = new ListeBis();
IHMTPListe ihm = new IHMTPListe(liste,Color.cyan);
IHMTPListe ihmbis = new IHMTPListe(listebis,Color.green);
add(ihm);
add(ihmbis);
}
}
Pour pouvoir utiliser l'applette, faire: DOS> appletviewer IHM.html |