import java.io.*;     // Inclusion du paquet d'E/S système
import javax.swing.*; // Inclusion de 'swing' pour 'JOptionPane'

// Déclaration d' énumération  (à l'extérieur d'une classe):
/**
 * Couleur :  classe énumérée de trois constantes  {Bleu,  Blanc,  Rouge}
 */

enum  Couleur {Bleu,  Blanc,  Rouge}; // <==> classe externe ('outer class')

/**
  * Classe 'v_enum' :  VERIFICATION DE 'enum'
  * @author   (c) ~/2A env.
  * @version  0.93  2004.12.29
  * @see   es
  */
public class v_enum  {
 /**
   * jout: champ public de classe <===> alias de 'System.out'
   */
  public static PrintWriter jout= new PrintWriter(System.out, true);

// Déclaration d' énumération  (à l'intérieur de la classe 'v_num'):
  /**
   * Titre:  classe énumérée de trois constantes {Mr,  Mrs, Miss}
   */

  enum  Titre {Mr,  Mrs, Miss}; // <==>  classe interne ('inner class')


/**
  * Méthode principale publique 'main(...)'.
  * Elle utilise la classe 'es' pour accéder aux méthodes de classe:
  *    attente() - affichage de l'heure courante,
  *    LireCh()  - lecture d'une chaîne de caractères,
  *    LireCh(guide) - idem mais un message de guide en lecture.
  *
  * @param args Tableau de chaînes pour ligne de commande éventuelle
  */
  public static void main(String args[]) throws IOException  {

        String txt= new String(); // <==>  String txt;

	txt  ="v_enum.java: Verif. de 'enum' à partir de Java 5.0 ...  \n";
	txt +="----------- (c)~/2A env. - MAJ: 2004.12.29 18H11  \n";
	txt +="Usage éventuel:  java  enum  args0  args1...\n";
	txt +="============================================\n";
     // A COMPLETER  ci-après ...
        for(Couleur c : Couleur.values())
            txt += "  "+ c;
        txt += "\n\n";
        for(Titre c : Titre.values())
            txt += "    "+ c;
        txt += "\n\n";

        Titre unTitre = Titre.Mrs;
        txt += unTitre + " aime du "+ Couleur.Blanc + "\n";
        unTitre = Titre.Miss;
        txt += unTitre + " aime du "+ Couleur.Rouge + "\n";
        unTitre = Titre.Mr;
        txt += unTitre + " aime du "+ Couleur.Bleu + "\n\n";

        switch (unTitre)  {
          case  Miss :
            txt += unTitre + " = Mademoiselle  (Melle)\n";
            break;
          case Mrs :
            txt += unTitre + " = Madame  (Mme) \n";
            break;
          case Mr :
            txt += unTitre + " = Monsieur  (M. en fran\u00e7ais !)  \n\n";
            break;
        }
        for(v_enum.Titre c : v_enum.Titre.values())
            txt += "valueOf("+ c +") = "+ c  + "\n" ;
     //
        jout.println(txt);  // 'jout' pour alléger la frappe ...
	JOptionPane.showMessageDialog(null, txt);
        es.attente();   // Stabilisation de l'écran pour lecture ...
	System.exit(0);
  }
}


