PROGRAMMATION AVANCÉE Examen (avec documents)
Listing 1 – La classe Main
1import org.jdom2.*;
2
3class Main {
4static Element getPoint(String name, int x, int y) {
5Element point = new Element("point");
6point.setAttribute("x", x).setAttribute("y", y);
7point.addContent(name);
8return point;
9}
10 public static void main(String[] args) {
11 Element racine = new Element("polygone");
12 racine.addContent(getPoint("O", 1, 0));
13 racine.addContent(getPoint("N", 0, 1));
14 racine.addContent(getPoint("E", -1, 0));
15 racine.addContent(getPoint("S", 0, -1));
16 Document doc = new Document(racine);
17 JDOMTools.ecrire(doc, System.out);
18 }
19 }
2. Les attributs seront affichés dans l’ordre alphabétique.
3. Pour un attribut donné, les classes sont affichées dans l’ordre alphabétique.
4. Si une classe n’existe pas (ClassNotFoundException), un message l’indiquera sur le ter-
minal mais le traitement continuera.
5. Pour des raisons d’efficacité, on évitera de traiter à nouveau une classe déjà traitée.
Le listing 2 présente l’affichage produit pour la commande :
java IndexeurAttributs String java.util.ArrayList java.util.LinkedList
3.1 Pour chaque contrainte précédente indiquer, de manière très concise, comment la prendre
en compte.
3.2 Écrire la classe IndexeurAttributs.
Exercice 4 : Interface utilisateur d’une application de discussion instantanée (chat)
La figure 1 présente l’interface souhaitée pour une application de discussion instantanée (chat).
Trois utilisateurs Lui, Toi et Moi discutent : l’utilisateur saisit un message dans la partie inférieure
de sa fenêtre et clique sur OK pour l’envoyer à tous les utilisateurs connectés.
4.1 Compléter la classe ChatSwing (listing 3) qui correspond à l’aspect graphique de la figure 1.
4.2 Rendre actif le bouton Fermer.
4.3 Expliquer ce qu’est le patron MVC et en particulier les variantes dites modèle passif et
modèle actif.
4.4 Expliquer comment faire pour rendre actif le bouton OK.
Examen 1 2/4