Pour pouvoir dessiner sur le canevas il faut dresser les commandes au "contexte graphique" du canevas,, récupéré par la méthode getGraphicsContext2D.
En clair les commandes de dessin doivent être précédées d'une ligne de type :
GraphicsContext gc=nom_du_canevas.getGraphicsContext2D();(voir l'exemple du chronomètre pour plus de détails).
Dans les explications suivants, chaque commande graphique commence par "gc." pour préciser le fait qu'on dessine dans un contexte graphique qu'on a choisi d'appeler gc.
Les coordonnées (x,y) passées en paramètres aux méthodes de dessin sont toujours de type double.
Par défaut l'origine (0,0) est en haut à gauche (mais on peut la positionner ailleurs en utilisant la commande translate comme montré ici )
Tracé d'une ligne droite entre les points (x1,y1) et (x2,y2) , x1,y1,x2,y2 étant de type double
gc.strokeLine(x1,y1,x2,y2)
Les méthodes permettant de tracer les formes de base se partagent en deux catégories : celles qui commencent par "stroke" et celles qui commencent par "fill".
Celles qui commencent par "stroke" permettent de tracer le contour de la forme, celles qui commencent par "fill" en remplissent l'intérieur.
Tracé d'un rectangle :
gc.strokeRect(x,y,l,h)ou
gc.fillRect(x,y,l,h)x et y sont les coordonnées du point supérieur gauche, l est la largeur et h la hauteur. h et l sont de type double.
Tracé d'une ellipse :
gc.strokeOval(x,y,l,h)ou
gc.fillOval(x,y,l,h)L'ellipse est inscrite ans un rectangle dont x et y sont les coordonnées du point supérieur gauche, l la largeur et h la hauteur. h et l sont de type double.
Tracé d'un arc d'ellipse
gc.strokeArc(x,y,l,h)ou
gc.fillArc(x,y,l,h,depart,angle,fermeture)L'arc est une portion de l'ellipse inscrite ans un rectangle dont x et y sont les coordonnées du point supérieur gauche, l la largeur et h la hauteur. h et l sont de type double.
Exemple : les lignes
gc.fillOval(280, 250, 200, 100); gc.strokeArc(280, 250, 200, 100, 0, 60, ArcType.OPEN); gc.strokeArc(280, 250, 200, 100, 70,40 , ArcType.ROUND); gc.strokeArc(280, 250, 200, 100, 155,50 , ArcType.CHORD);donnent le résultat suivant :
fillArc(double x, double y, double w, double h, double startAngle, double arcExtent, ArcType closure) Fills an arc using the current fill paint. void fillOval(double x, double y, double w, double h) Fills an oval using the current fill paint. void fillPolygon(double[] xPoints, double[] yPoints, int nPoints) Fills a polygon with the given points using the currently set fill paint. void fillRect(double x, double y, double w, double h) Fills a rectangle using the current fill paint. void fillRoundRect(double x, double y, double w, double h, double arcWidth, double arcHeight) Fills a rounded rectangle using the current fill paint. void