Algorithmique & Programmation Orientée Objet Semestre 2 ST
Programmation en mode graphique La création d'affichages graphiques est à réaliser au moyen de l'API FenetreGraphique développée à cette fin. Celle-ci peut être téléchargée en cliquant sur le lien suivant: FenetreGraphique.zip. Ce fichier zip contient des fichiers .class qu'il convient d'extraire dans le répertoire où sera placé le fichier .java développé pour le projet. La documentation javadoc de référence de cette API est disponible via le lien suivant: Documentation javadoc FenetreGraphique. Un exemple d'utilisation est proposé au lien suivant: TestFenetreGraphique.java (exécution). Les fonctionnalités principales de cette API sont: Paramétrage et ouverture d'une fenêtre de dessin Choix de la couleur de tracé Tracé d'un pixel selon la couleur de tracé Tracé d'un segment de droite selon la couleur de tracé Tracé d'un rectangle selon la couleur de tracé Remplissage d'un rectangle selon la couleur de tracé Tracé d'un cercle selon la couleur de tracé Remplissage d'un cercle selon la couleur de tracé Tracé d'une chaîne de caractères selon la couleur de tracé Tracé d'une image Activation/désactivation du mode de tracé "ou exclusif" Choix de la couleur d'effacement de la zone de tracé Effacement de la zone de tracé avec la couleur d'effacement Chargement et téléchargement d'une image au format png Temporisation d'exécution pendant une période de temps comptée en milli-secondes Récupération des touches de clavier frappées Récupération des boutons de souris utilisés Récupération des positions en x et en y de la souris Apres ouverture de la fenêtre graphique de dessin au moyen de FenetreGraphique.init(...), la création d'une image suit le schéma suivant: Effacement de l'image: FenetreGraphique.clear() Exécution de tous les appels de fonction correspondant aux éléments graphiques à tracer: FenetreGraphique.draw*(...) ou FenetreGraphique.fill*(...) (dessin "off-screen") Affichage de l'image obtenue: FenetreGraphique.flush() La fenêtre graphique reste ouverte (et bloque la terminaison de l'application) jusqu'à ce que l'instruction FenetreGraphique.exit() soit exécutée qui entraine sa fermeture (et la terminaison de l'application). Exemple 1: Affichage d'un segment de droite et d'un cercle (exécutable, fichier source): /* Application exemple d'utilisation des methodes */ /* contenues dans FenetreGraphique.class */ public class SimpleFenetreGraphique { public static void main(String [] args) { /* Initialisation et ouverture */ /* de la fenetre d'affichage graphique */ /* Coin superieur gauche en position ecran (50,50) */ /* Fenetre de taille 500x420 */ /* Zone d'affichage de taille 480x360 */ /* Titre "Test affichage graphique" */ FenetreGraphique fg = new FenetreGraphique(50,50,500,420,480,360,"Test affichage graphique"); /* Choix d'un vert fonce comme couleur d'effacement */ /* de la zone d'affichage */ fg.setClearColor(0,40,0); /* Ordre d'effacement de la zone d'affichage */ fg.clear(); /* Choix d'un rouge clair comme couleur de trace */ fg.setColor(200,0,0); /* Ordre d'affichage d'un segment de droite */ /* Extremite initiale de position (40,70) */ /* Extremite finale de position (400,300) */ fg.drawLine(40,70,400,300); /* Choix d'un bleu clair comme couleur de trace */ fg.setColor(0,0,200); /* Ordre d'affichage d'un cercle */ /* Centre de position (310,170) */ /* Rayon: 90 pixels */ fg.drawCircle(310,170,90); /* Envoi a l'ecran de l'image telle que construite */ /* par l'ensemble des ordres d'affichage executes */ /* depuis le dernier fg.flush */ fg.flush(); /* Temporisation de 10000 milli-secondes */ FenetreGraphique.wait(10000); /* Fermeture de la fenetre */ /* et interruption de l'application */ FenetreGraphique.exit(); } } Exemple 2: Téléchargement et affichage d'une image (exécutable, fichier source): Les coordonnées utilisées sont comptées en pixels (valeurs entières de type int). Le repère d'affichage est orienté avec l'axe des x en direction de la droite et l'axe des y en direction du bas de la fenêtre d'affichage. L'origine (coordonnées (0,0)) est située en haut à gauche de la fenêtre. Remarque: L'exécution de la fonction FenetreGraphique.init(...) a pour résultat l'ouverture d'une fenêtre graphique a coté (en plus) de la fenêtre "console" texte classique. Il n'est pas possible d'ouvrir plus d'une fenêtre graphique. Les instructions FenetreGraphique.* sont automatiquement et obligatoirement "envoyées" dans la fenêtre graphique. Les instructions Clavier.saisir*() et Ecran.afficher*() continuent à fonction normalement dans la fenêtre console texte d'exécution de l'application et ne peuvent pas être redirigées vers la fenêtre graphique. Suivi de versions Version actuelle (6 avril 2019): FenetreGraphique.zip
Clavier.class - Ecran.class - FenetreGraphique.zip - Documentation