On reprend le TP sur l'algorithme de Kruskal pour la recherche d'un arbre couvrant de poids minimum pour en avoir une version graphique. On ne lit plus l'ensemble des points à partir d'un fichier mais en utilisant une interface graphique.
L'application pourra ressembler à l'applet ci-dessous dans laquelle il faut cliquer pour avoir des points et appuyer sur le bouton pour voir l'arbre couvrant de poids minimum :
Les numéros des sommets ne vous seront peut-être plus utiles.
On utilisera l'interface nommé Graphique dont le code est ci-dessous, que vous placerez dans un paquetage nommé kruskalGraphique.vue.
package kruskalGraphique.vue;
import java.awt.Graphics;
public interface Graphique {
public void dessiner(Graphics g);
}
On utilisera le modèle MVC (modèle-vue-contrôleur).
setChanged();
notifyObservers();
dès qu'un attribut du modèle représenté graphiquement est modifié.
public void update(Observable o, Object arg) {
repaint();
}
et enfin que cette classe s'inscrive comme observateur de l'instance de la classe ArbreGraphique considérée par une instruction :
package kruskalGraphique.vue;
import kruskalGraphique.modele.ArbreGraphique;
public class AppliKruskalGraphique {
public static void main(String[] arg) {
ArbreGraphique arbre = new ArbreGraphique();
new FenetreArbre(arbre);
}
}
Vous testerez les différents parties au fur et à mesure. Le modèle devrait déjà avoir été globalement testé dans le TP précédent. L'interface graphique pourra être conçue avant de programmer les listeners.
© Irène Charon, Télécom ParisTech - Paris 2011