Solutions du chapitre 12
Composants de base de l’interface
utilisateur graphique
12.4 Complétez chacune des propositions suivantes:
a) La classe JTextField hérite directement de .
RÉP.: JTextComponent.
b) Les gestionnaires de tracé étudiés dans ce chapitre sont: , et .
RÉP.: FlowLayout, BorderLayout et GridLayout.
c) La méthode de Container lie un composant GUI à un conteneur.
RÉP.: add.
d) La méthode est appelée lors du relâchement d’un bouton de souris, sans déplacement de la souris.
RÉP.: mouseClicked.
e) La classe sert à créer un groupe de JRadioButton.
RÉP.: ButtonGroup.
12.5 Établissez si chacune des propositions suivantes est vraie ou fausse. Si elle est fausse, expliquez pourquoi.
a) Il n’est permis de placer qu’un seul gestionnaire de tracé par Container.
RÉP.: Vrai.
b) Les composants GUI s’ajoutent à un Container dans n’importe quel ordre dans un BorderLayout.
RÉP.: Vrai.
c) Les JRadioButton fournissent une série d’options qui s’excluent mutuellement, c’est-à-dire qu’une seule option est
sélectionnable (peut être true) à la fois.
RÉP.: Vrai.
d) La méthode setFont de Graphics sert à imposer la police des zones de texte modifiable.
RÉP.: Faux. La méthode setFont de Component sert à cela.
e) Un JList affiche une barre de défilement si la liste compte plus d’éléments qu’elle ne peut en afficher à la fois.
RÉP.: Faux. Un JList ne fournit jamais de barre de défilement.
f) Un objet Mouse contient une méthode nommée mouseDragged.
RÉP.: Faux. Java ne fournit aucun objet Mouse.
12.6 Établissez si chacune des propositions suivantes est vraie ou fausse. Si elle est fausse, expliquez pourquoi.
a) Un JApplet ne dispose pas de panneau de contenu.
RÉP.: Faux. Un JApplet en dispose d’un.
b) Un JPanel est un JComponent.
RÉP.: Vrai.
c) Un JPanel est un Component.
RÉP.: Vrai.
d) Un JPanel est un Container.
RÉP.: Vrai.
e) Un JList est un JPanel.
RÉP.: Faux. Un JList est un JComponent.
f) Un AbstractButton est un JButton.
RÉP.: Faux. Un JButton est un AbstractButton.
g) Un JTextField est un Object.
RÉP.: Vrai.
h) ButtonGroup hérite de JComponent.
RÉP.: Faux. ButtonGroup hérite de Object.
12.7 Trouvez la (ou les) erreur(s) de chacune des propositions suivantes et expliquez comment la (ou les) corriger.
a) import javax.swing.* // inclure le package swing.
COPYRIGHT 2001 LES ÉDITIONS REYNALD GOULET INC. TOUTE REPRODUCTION INTERDITE.
RÉP.: Le point virgule manque après l’astérisque.
b) ObjetDePanneau.GridLayout( 8, 8 ); // définir un GridLayout.
RÉP.: Le constructeur de GridLayout ne peut servir de cette manière. L’instruction correcte serait plutôt:
panelObject.getContentPane().setLayout( new GridLayout( 8, 8 ) );
c) c.setLayout( new FlowLayout( FlowLayout.DEFAULT ) );
RÉP.: La classe FlowLayout ne contient aucune constante static nommée DEFAULT.
d) c.add( eastButton, EAST ); // BorderLayout
RÉP.: L’argument EAST devrait être BorderLayout.EAST.
12.8 Créez l’interface utilisateur graphique suivante. Aucune fonctionnalité n’est nécessaire.
RÉP.:
Note: cet exercice vous est proposé soit comme application (comme dans l’énoncé de l’exercice du livre), soit comme
applet, comme ici. Le cédérom d’accompagnement propose les deux versions. La version application est dans le fichier
AppAlignement.java.
1// Solution de l’exercice 12.8.
2// Alignement.java
3// Ce programme crée un GUI simple.
4import javax.swing.*;
5import java.awt.*;
6
7public class Alignement extends JApplet {
8 private JButton ok, annuler, aide;
9 private JTextField valeurX, valeurY;
10 private JCheckBox magnetisme, montrer;
11 private JLabel etiquetteX, etiquetteY;
12 private JPanel voletCoches, voletBoutons,
13 voletChamp1, voletChamp2,
14 voletChamp;
15
16 public void init()
17 {
18 // Construire le voletCoches.
19 magnetisme = new JCheckBox( "Magnétisme" );
20 montrer = new JCheckBox( "Montrer grille" );
21 voletCoches = new JPanel();
22 voletCoches.setLayout( new GridLayout( 2 , 1 ) );
23 voletCoches.add( magnetisme );
24 voletCoches.add( montrer );
25
26 // Construire le volet champs 1.
27 etiquetteX = new JLabel( "X: " );
28 valeurX = new JTextField( "8", 3 );
29 voletChamp1 = new JPanel();
30 voletChamp1.setLayout( new FlowLayout( FlowLayout.CENTER, 3, 5 ) );
31 voletChamp1.add( etiquetteX );
32 voletChamp1.add( valeurX );
33
34 etiquetteY = new JLabel( "Y: " );
35 valeurY = new JTextField( "8", 3 );
36 voletChamp2 = new JPanel();
37 voletChamp2.setLayout( new FlowLayout( FlowLayout.CENTER, 3, 5 ) );
38 voletChamp2.add( etiquetteY );
39 voletChamp2.add( valeurY );
40
41 voletChamp = new JPanel();
42 voletChamp.setLayout( new BorderLayout() );
COPYRIGHT 2001 LES ÉDITIONS REYNALD GOULET INC. TOUTE REPRODUCTION INTERDITE.
43 voletChamp.add( voletChamp1, BorderLayout.NORTH );
44 voletChamp.add( voletChamp2, BorderLayout.SOUTH );
45
46 // Construire le volet des boutons.
47 ok = new JButton( "Ok" );
48 annuler = new JButton( "Annuler" );
49 aide = new JButton( "Aide" );
50 voletBoutons = new JPanel();
51 voletBoutons.setLayout( new GridLayout( 3, 1, 10, 5 ) );
52 voletBoutons.add( ok );
53 voletBoutons.add( annuler );
54 voletBoutons.add( aide );
55
56 // Définir le tracé de l’applet.
57 getContentPane().setLayout(
58 new FlowLayout( FlowLayout.CENTER, 10, 5 ) );
59 getContentPane().add( voletCoches );
60 getContentPane().add( voletChamp );
61 getContentPane().add( voletBoutons );
62 }
63 }
12.9 Créez l’interface utilisateur graphique suivante. Aucune fonctionnalité n’est nécessaire.
RÉP.:
Note: cet exercice vous est proposé soit comme application (comme dans l’énoncé de l’exercice du livre), soit comme
applet, comme ici. Le cédérom d’accompagnement propose les deux versions. La version application est dans le fich-
ier AppCalculatrice.java.
1// Solution de l’exercice 12.9.
2// Calculatrice.java
3// Ce programme crée un GUI simple.
4// html: largeur = 270 hauteur = 200
5import javax.swing.*;
6import java.awt.*;
7
8public class Calculatrice extends JApplet {
9 private JButton touches[];
10 private JPanel clavier;
11 private JTextField lcd;
12
13 public void init()
14 {
15 lcd = new JTextField( 20 );
16 clavier = new JPanel();
17 touches = new JButton[ 16 ];
18
19 lcd.setEditable( false );
20
21 for ( int i = 0; i <= 9; i++ )
22 touches[ i ] = new JButton( String.valueOf( i ) );
23
24 touches[ 10 ] = new JButton( "/" );
25 touches[ 11 ] = new JButton( "*" );
COPYRIGHT 2001 LES ÉDITIONS REYNALD GOULET INC. TOUTE REPRODUCTION INTERDITE.
26 touches[ 12 ] = new JButton( "-" );
27 touches[ 13 ] = new JButton( "+" );
28 touches[ 14 ] = new JButton( "=" );
29 touches[ 15 ] = new JButton( "." );
30
31 // Définir le tracé du clavier comme d’un grid layout.
32 clavier.setLayout( new GridLayout( 4, 4 ) );
33
34 for ( int i = 7; i <= 10; i++ ) // 7, 8, 9, 10
35 clavier.add( touches[ i ] ); // Division.
36
37 for ( int i = 4; i <= 6; i++ ) // 4, 5, 6
38 clavier.add( touches[ i ] );
39
40 clavier.add( touches[ 11 ] ); // Multiplication.
41
42 for ( int i = 1; i <= 3; i++ ) // 1, 2, 3
43 clavier.add( touches[ i ] );
44
45 clavier.add( touches[ 12 ] ); // Soustraction.
46
47 clavier.add( touches[ 0 ] ); // 0
48
49 for ( int i = 15; i >= 13; i-- )
50 clavier.add( touches[ i ] ); // ., =, ajouter.
51
52 // Définir le tracé de l’applet comme un border layout.
53 getContentPane().setLayout( new BorderLayout() );
54 getContentPane().add( lcd, BorderLayout.NORTH );
55 getContentPane().add( clavier, BorderLayout.CENTER );
56 }
57 }
12.10 Créez l’interface utilisateur graphique suivante. Aucune fonctionnalité n’est nécessaire.
RÉP.:
Note: cet exercice vous est proposé soit comme application (comme dans l’énoncé de l’exercice du livre), soit comme
applet, comme ici. Le cédérom d’accompagnement propose les deux versions. La version application est dans le fichier
AppChoixCouleur.java.
1// Solution de l’exercice 12.10.
2// ChoixCouleur.java
3// Ce programme crée un GUI simple.
4import javax.swing.*;
5import java.awt.*;
6
7public class ChoixCouleur extends JApplet {
8 private JButton ok, annuler;
9 private JCheckBox b, f;
10 private JComboBox listeCouleurs;
11 private JPanel p, p1;
12
13 public void init()
14 {
15 // Applet.
16 getContentPane().setLayout( new BorderLayout() );
17
18 // Nord.
COPYRIGHT 2001 LES ÉDITIONS REYNALD GOULET INC. TOUTE REPRODUCTION INTERDITE.
19 listeCouleurs = new JComboBox();
20 listeCouleurs.addItem( "ROUGE" );
21 getContentPane().add( listeCouleurs, BorderLayout.NORTH );
22
23 // Centre.
24 p = new JPanel();
25 b = new JCheckBox( "arrière-plan" );
26 f = new JCheckBox( "avant-plan" );
27 p.add( b );
28 p.add( f );
29 getContentPane().add( p, BorderLayout.CENTER );
30
31 // Sud.
32 ok = new JButton( "Ok" );
33 annuler = new JButton( "Annuler" );
34 p1 = new JPanel();
35 p1.add( ok );
36 p1.add( annuler );
37 getContentPane().add( p1, BorderLayout.SOUTH );
38 }
39 }
12.11 Créez l’interface utilisateur graphique suivante. Aucune fonctionnalité n’est nécessaire.
RÉP.:
Note: cet exercice vous est proposé soit comme application (comme dans l’énoncé de l’exercice du livre), soit comme
applet, comme ici. Le cédérom d’accompagnement propose les deux versions. La version application est dans le fich-
ier AppImprimante.java.
1// Solution de l’exercice 12.11.
2// Imprimante.java
3// Ce programme crée un GUI simple.
4// html: largeur = 400, hauteur = 130.
5import javax.swing.*;
6import java.awt.*;
7
8public class Imprimante extends JApplet {
9 private JButton b1, b2, b3, b4;
10 private JCheckBox c1, c2, c3, c4;
11 private JRadioButton br1, br2, br3;
12 private ButtonGroup groupeBRadio;
13 private JComboBox q;
14 private JLabel etiquette1, etiquette2;
15 private JPanel p1, p2, p3, p4, p5, p6, p7, p8;
16
17 public void init()
18 {
19 // Construire le volet nord gauche.
20 etiquette1 = new JLabel( "Imprimante: Epson EPL-7000" );
21 p1 = new JPanel();
22 p1.setLayout( new FlowLayout( FlowLayout.LEFT ) );
23 p1.add( etiquette1 );
24
25 // Construire le volet est droit.
26 b1 = new JButton( "Ok" );
27 b2 = new JButton( "Annuler" );
28 b3 = new JButton( "Paramètres..." );
29 b4 = new JButton( "Aide" );
1 / 48 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 !