Solutions du chapitre 11
Graphismes et Java2D
11.4 Complétez chacune des propositions suivantes:
a) La classe de l’API Java2D sert à définir des ovales.
RÉP.: Ellipse2D.
b) Les méthodes draw et fill de la classe Graphics2D requièrent un object de type comme argument.
RÉP.: Shape.
c) Les trois constantes qui spécifient le style de police sont , et .
RÉP.: Font.PLAIN, Font.BOLD et Font.ITALIC.
d) La méthode de Graphics2D définit la couleur de peinture des formes de Java2D.
RÉP.: setColor.
11.5 Établissez si chacune des propositions suivantes est vraie ou fausse. Si elle est fausse, expliquez pourquoi.
a) La méthode drawPolygon relie automatiquement les points finaux d’un polygone.
RÉP.: Vrai.
b) La méthode drawLine trace un trait entre deux points.
RÉP.: Vrai.
c) La méthode fillArc utilise des degrés pour spécifier l’angle.
RÉP.: Vrai.
d) Dans le système de coordonnées Java, les valeurs y augmentent de haut en bas.
RÉP.: Vrai.
e) La classe Graphics hérite directement de la classe Object.
RÉP.: Vrai.
f) La classe Graphics est une classe abstraite (abstract).
RÉP.: Vrai.
g) La classe Font hérite directement de la classe Graphics.
RÉP.: Faux. La classe Font hérite directement de la classe Object.
11.6
11.7
11.8
11.9 Écrivez un programme qui dessine des traits de longueurs aléatoires dans des couleurs aléatoires.
RÉP.:
1// Solution de l’exercice 11.9.
2// Lignes1.java
3// Ce programme dessine des lignes de tailles et couleurs aléatoires.
4import javax.swing.*;
5import java.awt.*;
6import java.awt.event.*;
7
8public class Lignes1 extends JFrame {
9
10 public Lignes1()
11 {
12 super( "Tracé de lignes" );
13 setSize( 200, 200 );
14 show();
COPYRIGHT 2001 LES ÉDITIONS REYNALD GOULET INC. TOUTE REPRODUCTION INTERDITE.
15 }
16
17 public void paint( Graphics g )
18 {
19 for ( int y = 10; y < 200; y += 10 ) {
20 int x1 = ( int ) ( 1 + Math.random() * 199 );
21
22 g.setColor( new Color( ( float ) Math.random(),
23 ( float ) Math.random(), ( float ) Math.random() ) );
24 g.drawLine( 1, y, x1, y );
25 }
26 }
27
28 public static void main( String args[] )
29 {
30 Lignes1 app = new Lignes1();
31
32 app.addWindowListener(
33 new WindowAdapter() {
34 public void windowClosing( WindowEvent e )
35 {
36 System.exit( 0 );
37 }
38 }
39 );
40 }
41 }
11.10 Modifiez la solution de l’exercice 11.9 pour dessiner des traits aléatoires dans des couleurs et des épaisseurs de traits aléa-
toires. Utilisez la classe Line2D.Double et la méthode draw de la classe Graphics2D pour tracer ces lignes.
RÉP.:
1// Solution de l’exercice 11.10.
2// Lignes.java
3// Ce programme dessine des lignes de différentes couleurs.
4import javax.swing.*;
5import java.awt.*;
6import java.awt.event.*;
7import java.awt.geom.*;
8
9public class Lignes extends JFrame {
10 private Color couleurs[] = { Color.green, Color.cyan,
11 Color.black, Color.yellow,
12 Color.darkGray, Color.red,
13 Color.orange, Color.gray,
14 Color.pink, Color.magenta };
15
16 public Lignes()
17 {
18 super( "Lignes" );
19 setSize( 300, 300 );
20 show();
21 }
22
23 public void paint( Graphics g )
24 {
COPYRIGHT 2001 LES ÉDITIONS REYNALD GOULET INC. TOUTE REPRODUCTION INTERDITE.
25 // Créer une figure 2D en remplaçant le type de g par un Graphics2D.
26 Graphics2D g2d = ( Graphics2D ) g;
27
28 for ( int y = 10; y < 200; y += 10 ) {
29 int couleur = ( int ) ( Math.random() * 9 );
30
31 g2d.setColor( couleurs[ couleur ] );
32 int epaisseur = ( int ) ( Math.random() * 20 + 1 );
33 g2d.setStroke( new BasicStroke( epaisseur ) );
34 int x1 = ( int ) ( 1 + Math.random() * 199 );
35 g2d.draw( new Line2D.Double( 1, y, x1, y ) );
36 }
37 }
38
39 public static void main( String args[] )
40 {
41 Lignes app = new Lignes();
42
43 app.addWindowListener(
44 new WindowAdapter() {
45 public void windowClosing( WindowEvent e )
46 {
47 System.exit( 0 );
48 }
49 }
50 );
51 }
52 }
11.11 Écrivez un programme qui affiche des rectangles générés au hasard. Remplissez chaque triangle d’une couleur différente.
Utilisez la classe GeneralPath et la méthode fill de la classe Graphics2D pour dessiner les triangles.
RÉP.:
1// Solution de l’exercice 11.11.
2// Triangles.java
3import javax.swing.*;
4import java.awt.event.*;
5import java.awt.*;
6import java.awt.geom.*;
7
8public class Triangles extends JFrame {
9
10 public Triangles()
11 {
12 super( "Tracé de Triangles" );
13 setSize( 400, 400 );
14 show();
15 }
16
17 public void paint( Graphics g )
COPYRIGHT 2001 LES ÉDITIONS REYNALD GOULET INC. TOUTE REPRODUCTION INTERDITE.
18 {
19 GeneralPath triangle = new GeneralPath();
20
21 for ( int i = 0; i < 10; i++ ) {
22 // Créer un triangle à partir de trois points aléatoires.
23 int x = ( int ) ( Math.random() * 375 + 25 );
24 int y = ( int ) ( Math.random() * 375 + 25 );
25 triangle.moveTo( x, y );
26
27 // Deuxième point.
28 x = ( int ) ( Math.random() * 375 + 25 );
29 y = ( int ) ( Math.random() * 375 + 25 );
30 triangle.lineTo( x, y );
31
32 // Troisieme point.
33 x = ( int ) ( Math.random() * 375 + 25 );
34 y = ( int ) ( Math.random() * 375 + 25 );
35 triangle.lineTo( x, y );
36
37 Graphics2D g2d = ( Graphics2D ) g;
38
39 // Fermer la forme.
40 triangle.closePath();
41
42 // Choisir une couleur aléatoire.
43 g2d.setColor(new Color( ( int ) ( Math.random() * 256 ),
44 ( int ) ( Math.random() * 256 ),
45 ( int ) ( Math.random() * 256 ) ) );
46 g2d.fill( triangle );
47 triangle.reset();
48 }
49 }
50
51 public static void main( String args[] )
52 {
53 Triangles app = new Triangles();
54
55 app.addWindowListener(
56 new WindowAdapter() {
57 public void windowClosing( WindowEvent e )
58 {
59 System.exit( 0 );
60 }
61 }
62 );
63 }
64 }
COPYRIGHT 2001 LES ÉDITIONS REYNALD GOULET INC. TOUTE REPRODUCTION INTERDITE.
11.12 Écrivez un programme qui dessine des caractères dans des tailles de polices et des couleurs différentes.
RÉP.:
1// Solution de l’exercice 11.12.
2// Dessin.java
3// Ce programme dessine des caractères au hasard.
4// Note: couvrir, re-dimensionner ou re-démarrer le programme de manière
5// répétitive pour voir le tracé de plusieurs caractères.
6import javax.swing.*;
7import java.awt.*;
8import java.awt.event.*;
9
10 public class Dessin extends JFrame {
11 private final int DELAI = 4000000;
12
13 public Dessin()
14 {
15 super( "Tracé de caractères" );
16 setSize( 380, 150 );
17 show();
18 }
19
20 public void paint( Graphics g )
21 {
22 int taillePolice = ( int ) ( 10 + Math.random() * 63 );
23 int x = ( int ) ( 30 + Math.random() * 341 );
24 int y = ( int ) ( 50 + Math.random() * 95 );
25 char lettres[] = { 'V', 'O', 'L', 'S', '8', '7' };
26 Font f = new Font( "Monospaced", Font.BOLD, taillePolice );
27
28 g.setColor( new Color( ( float ) Math.random(),
29 ( float ) Math.random(),
30 ( float ) Math.random() ) );
31 g.setFont( f );
32 g.drawChars( lettres, ( int ) ( Math.random() * 6 ), 1, x, y );
33
34 for ( int h = 1; h < DELAI; h++ ) ; // Ralentir l’affichage.
35 repaint();
36 }
37
38 public static void main( String args[] )
39 {
40 Dessin app = new Dessin();
41
42 app.addWindowListener(
43 new WindowAdapter() {
44 public void windowClosing( WindowEvent e )
45 {
46 System.exit( 0 );
47 }
48 }
49 );
50 }
51 }
11.13 Écrivez un programme qui dessine une grille de 8 sur 8. Employez la méthode drawLine.
RÉP.:
1 / 17 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !