Développons en Java 2.30 | |
Copyright (C) 1999-2022 Jean-Michel DOUDOUX | (date de publication : 15/06/2022) |
|
Niveau : | Elémentaire |
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 grâce à la machine virtuelle une sous-classe de Graphics dépendante de la plate-forme utilisée.
Ce chapitre contient une section :
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éthode | 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 aux angles arrondis |
||||
drawLine(x1, y1, x2, y2) | Dessiner une ligne |
||||
drawOval(x, y, largeur, hauteur) fillOval(x, y, largeur, hauteur) |
dessiner un cercle ou une ellipse en spécifiant le rectangle dans lequel ils s'inscrivent |
||||
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ètre est le nombre de points du polygone.
Il est possible de définir un objet Polygon.
|
||||
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é |
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 de type int ou float, il suffit de les concaténer à une chaîne éventuellement vide avec l'opérateur +.
La classe Font permet d'utiliser une police de caractères particulière pour afficher 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écédemment. Le style et la taille seront tout de même adapté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
La méthode setColor() permet de fixer, à postériori, la couleur des éléments graphiques créés dans l'instance de type Graphics.
Exemple ( code Java 1.1 ) : |
g.setColor(Color.black); //(green, blue, red, white, black, ...) |
Si 2 surfaces de couleur différentes se superposent, alors la dernière 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.
La méthode clearRect(x1, y1, x2, y2) dessine un rectangle dans la couleur de fond courante.
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.
|