IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Chapitre 9 : Le graphisme

13/10/2002

Par Jean-Michel Doudoux (autres articles)
 


9. Le graphisme
9.1. Les opérations sur le contexte graphique
9.1.1. Le tracé de formes géométriques
9.1.2. Le tracé de texte
9.1.3. L'utilisation des fontes
9.1.4. La gestion de la couleur
9.1.5. Le chevauchement de figures graphiques
9.1.6. L'effacement d'une aire
9.1.7. La copie une aire rectangulaire


9. Le graphisme


La classe Graphics contient les outils nécessaires pour dessiner. Cette classe est abstraite et elle ne possède pas de constructeur public : il n'est pas possible de construire des instances de graphics nous même. Les instances nécessaires sont fournies par le système d'exploitation qui instanciera via à la machine virtuelle une sous classe de Graphics dépendante de la plateforme utilisée.


9.1. Les opérations sur le contexte graphique



9.1.1. Le tracé de formes géométriques


A l 'exception des lignes, toutes les formes peuvent être dessinées vides (méthode drawXXX) ou pleines (fillXXX).

La classe Graphics possède de nombreuses méthodes qui permettent de réaliser des dessins.

Méthodes Rôle
drawRect(x, y, largeur, hauteur)
fillRect(x, y, largeur, hauteur)
dessiner un carré ou un rectangle
drawRoundRect(x, y, largeur, hauteur, hor_arr,ver_arr)
fillRoundRect(x, y, largeur, hauteur, hor_arr, ver_arr)
dessiner un carré ou un rectangle arrondi
drawLine(x1, y1, x2, y2) Dessiner une ligne
drawOval(x, y, largeur, hauteur)
fillOval(x, y, largeur, hauteur)
dessiner un cercle ou une elipse en spécifiant le rectangle dans lequel ils s'incrivent
drawPolygon(int[], int[], int)
fillPolygon(int[], int[], int)
Dessiner un polygone ouvert ou fermé. Les deux premiers paramètres sont les coordonnées en abscisses et en ordonnées. Le dernier paramètres est le nombre de points du polygone. Pour dessiner un polygone fermé il faut joindre le dernier point au premier.
Exemple ( code java 1.1 ) :
int[] x={10,60,100,80,150,10}; int[] y={15,15,25,35,45,15}; g.drawPolygon(x,y,x.length); g.fillPolygon(x,y,x.length);
Il est possible de définir un objet Polygon.
Exemple ( code java 1.1 ) :
int[] x={10,60,100,80,150,10}; int[] y={15,15,25,35,45,15}; Polygon p = new Polygon(x, y,x.length ); g.drawPolygon(p);
drawArc(x, y, largeur, hauteur, angle_deb, angle_bal)

fillArc(x, y, largeur, hauteur, angle_deb, angle_bal);
dessiner un arc d'ellipse inscrit dans un rectangle ou un carré. L'angle 0 se situe à 3 heures. Il faut indiquer l'angle de début et l'angle balayé

9.1.2. Le tracé de texte


La méthode drawString() permet d'afficher un texte aux coordonnées précisées

Exemple ( code java 1.1 ) :
g.drawString(texte, x, y );
Pour afficher des nombres int ou float, il suffit de les concatener à une chaine éventuellement vide avec l'opérateur +.


9.1.3. L'utilisation des fontes


La classe Font permet d'utiliser une police de caractères particulière pour affiche un texte.

Exemple ( code java 1.1 ) :
Font fonte = new Font(« TimesRoman »,Font.BOLD,30);
Le constructeur de la classe Font est Font(String, int, int). Les paramètres sont : le nom de la police, le style (BOLD, ITALIC, PLAIN ou 0,1,2) et la taille des caractères en points.

Pour associer plusieurs styles, il suffit de les additionner

Exemple ( code java 1.1 ) :
Font.BOLD + Font.ITALIC
Si la police spécifiée n'existe pas, Java prend la fonte par défaut même si une autre a été spécifiée précedemment. Le style et la taille seront tout de même adpatés. La méthode getName() de la classe Font retourne le nom de la fonte.

La méthode setFont() de la classe Graphics permet de changer la police d'affichage des textes

Exemple ( code java 1.1 ) :
Font fonte = new Font(" TimesRoman ",Font.BOLD,30); g.setFont(fonte); g.drawString("bonjour",50,50);
Les polices suivantes sont utilisables : Dialog, Helvetica, TimesRoman, Courier, ZapfDingBats


9.1.4. La gestion de la couleur


La méthode setColor() permet de fixer la couleur des éléments graphiques des objets de type Graphics créés après à son appel.

Exemple ( code java 1.1 ) :
g.setColor(Color.black); //(green, blue, red, white, black, ...)

9.1.5. Le chevauchement de figures graphiques


Si 2 surfaces de couleur différentes se superposent, alors la derniere dessinée recouvre la précédente sauf si on invoque la méthode setXORMode(). Dans ce cas, la couleur de l'intersection prend une autre couleur. L'argument à fournir est une couleur alternative. La couleur d'intersection représente une combinaison de la couleur originale et de la couleur alternative.


9.1.6. L'effacement d'une aire


La méthode clearRect(x1, y1, x2, y2) dessine un rectangle dans la couleur de fond courante.


9.1.7. La copie une aire rectangulaire


La méthode copyArea(x1, y1, x2, y2, dx, dy) permet de copier une aire rectangulaire. Les paramètres dx et dy permettent de spécifier un décalage en pixels de la copie par rapport à l'originale.