Devoir n°1 de i-Java: Listes

 

Sujet du devoir

Introduction

Exercice 1

Exercice 2

Exercice 3

Exercice 4

Documentation

 

rendu par:

mail to:Antoine Jeangeot

mail to:Eric Vogt

mail to:Alexandre Séviran

 

Retour à l'index

 

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