• Aide
  • Eurêkoi Eurêkoi

Résumé

Le langage Java en quatre étapes : apprentissage de la syntaxe de base, maîtrise de la programmation objet en Java, initiation à la programmation graphique et événementielle avec la bibliothèque Swing, introduction au développement web avec les servlets et les JSP. Cette édition présente les nouveautés des versions 10 à 14. Des ressources complémentaires sont accessibles en ligne.


  • Éditeur(s)
  • Date
    • DL 2020
  • Notes
    • La couv. porte en plus : "Couvre Java 10 à 14" ; ""Code source des exemples du livre"
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (XXXi-961 p.) : ill. ; 24 cm
  • Collections
  • Sujet(s)
  • ISBN
    • 978-2-416-00018-8
  • Indice
  • Quatrième de couverture
    • De la programmation objet en Java au développement d'applications web

      Dans cet ouvrage, Claude Delannoy applique au langage Java la démarche pédagogique qui a fait le succès de ses livres sur le C et le C+ +. Il insiste tout particulièrement sur la bonne compréhension des concepts objet et sur l'acquisition de méthodes de programmation rigoureuses.

      L'apprentissage du langage se fait en quatre étapes : apprentissage de la syntaxe de base, maîtrise de la programmation objet en Java, initiation à la programmation graphique et événementielle avec la bibliothèque Swing, introduction au développement web avec les servlets Java et les JSP.

      L'ouvrage met l'accent sur les apports des versions 5 à 9 de Java Standard Edition, qui ont fait évoluer la manière de programmer en Java : programmation générique, types énumérés, annotations, streams et expressions lambda, outil JShell, Java Platform Module System (ex-projet Jigsaw), etc. Un chapitre est dédié aux Design Patterns en Java et cette 11e édition présente les nouveautés des versions 10 à 14 de Java SE : déclaration var, variante de l'instruction switch et expression switch, écriture simplifiée des blocs de texte (Text Blocks), etc.

      Chaque notion nouvelle et chaque fonction du langage sont illustrées de programmes complets dont le code source est disponible en téléchargement sur le site www.editions-eyrolles.com.

      À qui s'adresse ce livre ?

      ¤ Aux étudiants de licence et de master, ainsi qu'aux élèves d'écoles d'ingénieurs.

      ¤ À tout programmeur ayant déjà une expérience de la programmation (Python, PHR C/C++, C#...) et souhaitant s'initier au langage Java.


  • Tables des matières
      • Programmer en Java

      • Claude Delannoy

      • Eyrolles

      • Avant-propos1
      • Chapitre 1 : Présentation de Java7
      • 1 - Petit historique du langage 7
      • 2 - Java et la programmation orientée objet 8
      • 2.1 Les concepts d'objet et d'encapsulation8
      • 2.2 Le concept de classe9
      • 2.3 L'héritage9
      • 2.4 Le polymorphisme10
      • 2.5 Java est presque un pur langage de P.O.O.10
      • 3 - Java et la programmation événementielle 11
      • 3.1 interface console ou interface graphique11
      • 3.1.1 Les programmes à interface console (ou en ligne de commande) 11
      • 3.1.2 Les programmes à interface graphique (G.U.I.) 11
      • 3.2 Les fenêtres associées à un programme12
      • 3.2.1 Cas d'une interface console 12
      • 3.2.2 Cas d'une interface graphique 12
      • 3.3 Java et les interfaces12
      • 3.3.1 La gestion des interfaces graphiques est intégrée dans Java 12
      • 3.3.2 Applications et applets 13
      • 3.3.3 on peut disposer d'une interface console en Java 13
      • 3.3.4 Java 9 et JShell 14
      • 4 - Java et la portabilité 14
      • Chapitre 2 : Généralités15
      • 1 - Premier exemple de programme Java 15
      • 1.1 Structure générale de programme16
      • 1.2 Contenu du programme17
      • 2 - Exécution d'un programme Java 18
      • 3 - Quelques instructions de base 20
      • 4 - Lecture d'informations au clavier 23
      • 4.1 Présentation d'une classe de lecture au clavier23
      • 4.2 Utilisation de cette classe24
      • 4.3 Boucles et choix24
      • 5 - Règles générales d'écriture 27
      • 5.1 Les identificateurs27
      • 5.2 Les mots-clés28
      • 5.3 Les séparateurs29
      • 5.4 Le format libre29
      • 5.5 Les commentaires30
      • 5.5.1 Les commentaires usuels 30
      • 5.5.2 Les commentaires de fin de ligne 31
      • 5.6 Emploi de code Unicode dans le programme source31
      • Chapitre 3 : Les types primitifs de Java33
      • 1 - La notion de type 33
      • 2 - Les types entiers 34
      • 2.1 Représentation mémoire34
      • 2.1.1 Cas d'un nombre positif 34
      • 2.1.2 Cas d'un nombre négatif 35
      • 2.2 Les différents types d'entiers35
      • 2.3 Notation des constantes entières36
      • 3 - Les types flottants 36
      • 3.1 Les différents types et leurs représentations en mémoire36
      • 3.2 Notation des constantes flottantes38
      • 4 - Le type caractère 39
      • 4.1 Généralités39
      • 4.2 Écriture des constantes de type caractère39
      • 5 - Le type booléen 42
      • 6 - Initialisation et constantes 42
      • 6.1 Initialisation d'une variable42
      • 6.2 Cas des variables non initialisées43
      • 6.3 Constantes et expressions constantes43
      • 6.3.1 Le mot-clé final 43
      • 6.3.2 Notion d'expression constante 44
      • 6.3.3 L'initialisation d'une variable final peut être différée 44
      • 7 - La déclaration var (Java 10) 45
      • Chapitre 4 : Les opérateurs et les expressions47
      • 1 - Originalité des notions d'opérateur et d'expression 47
      • 2 - Les opérateurs arithmétiques 49
      • 2.1 Présentation des opérateurs49
      • 2.2 Les priorités relatives des opérateurs50
      • 2.3 Comportements en cas d'exception51
      • 2.3.1 Cas des entiers 51
      • 2.3.2 Cas des flottants 51
      • 3 - Les conversions implicites dans les expressions 52
      • 3.1 Notion d'expression mixte52
      • 3.2 Les conversions d'ajustement de type53
      • 3.3 Les promotions numériques53
      • 3.4 Conséquences des règles de conversion54
      • 3.5 Le cas du type char55
      • 4 - Les opérateurs relationnels 56
      • 4.1 Présentation générale56
      • 4.2 Cas particulier des valeurs Infinity et NaN58
      • 4.3 Cas des caractères58
      • 4.4 Cas particulier des opérateurs (...) et  !(...)58
      • 5 - Les opérateurs logiques 59
      • 5.1 Généralités59
      • 5.2 Les opérateurs de court-circuit (...) et (...)60
      • 5.3 Priorités60
      • 6 - L'opérateur d'affectation usuel 61
      • 6.1 Restrictions61
      • 6.2 Associativité de droite à gauche62
      • 6.3 Conversions par affectation62
      • 6.3.1 Généralités 62
      • 6.3.2 Quelques conséquences 63
      • 6.3.3 Cas particulier des expressions constantes 64
      • 7 - Les opérateurs d'incrémentation et de décrémentation 65
      • 7.1 Leur rôle65
      • 7.2 Leurs priorités66
      • 7.3 Leur intérêt66
      • 7.3.1 Alléger l'écriture 66
      • 7.3.2 Éviter des conversions 67
      • 8 - Les opérateurs d'affectation élargie 67
      • 8.1 Présentation générale67
      • 8.2 Conversions forcées68
      • 9 - L'opérateur de cast 69
      • 9.1 Présentation générale69
      • 9.2 Conversions autorisées par cast70
      • 9.3 Règles exactes des conversions numériques71
      • 10 - Les opérateurs de manipulation de bits 72
      • 10.1 Présentation générale72
      • 10.2 Les opérateurs bit à bit73
      • 10.3 Les opérateurs de décalage74
      • 10.4 Exemples d'utilisation des opérateurs de bits75
      • 11 - L'opérateur conditionnel 76
      • 12 - Récapitulatif des priorités des opérateurs 77
      • Chapitre 5 : Les instructions de contrôle de Java79
      • 1 - L'instruction if 80
      • 1.1 Blocs d'instructions80
      • 1.2 Syntaxe de l'instruction if81
      • 1.3 Exemples81
      • 1.4 Imbrication des instructions if82
      • 2 - L'instruction switch 83
      • 2.1 Exemples d'introduction83
      • 2.1.1 Premier exemple 83
      • 2.1.2 L'étiquette default 85
      • 2.1.3 Un exemple plus général 86
      • 2.2 Syntaxe de l'instruction switch87
      • 2.3 Les nouvelles possibilités de l'instruction switch (Java 14)88
      • 2.4 L'expression switch (Java 14)91
      • 2.4.1 Présentation 91
      • 2.4.2 L'instruction yield 91
      • 3 - L'instruction do... while 92
      • 3.1 Exemple d'introduction93
      • 3.2 Syntaxe de l'instruction do... while94
      • 4 - L'instruction while 95
      • 4.1 Exemple d'introduction95
      • 4.2 Syntaxe de l'instruction while95
      • 5 - L'instruction for 96
      • 5.1 Exemple d'introduction96
      • 5.2 L'instruction for en général97
      • 5.3 Syntaxe de l'instruction for98
      • 6 - Les instructions de branchement inconditionnel break et continue 101
      • 6.1 L'instruction break ordinaire101
      • 6.2 L'instruction break avec étiquette102
      • 6.3 L'instruction continue ordinaire103
      • 6.4 L'instruction continue avec étiquette105
      • Chapitre 6 : Les classes et les objets107
      • 1 - La notion de classe 108
      • 1.1 Définition d'une classe Point108
      • 1.1.1 Définition des champs 109
      • 1.1.2 Définition des méthodes 109
      • 1.2 Utilisation de la classe Point111
      • 1.2.1 La démarche 111
      • 1.2.2 Exemple 112
      • 1.3 Mise en oeuvre d'un programme comportant plusieurs classes113
      • 1.3.1 Un fichier source par classe 113
      • 1.3.2 Plusieurs classes dans un même fichier source 114
      • 2 - La notion de constructeur 116
      • 2.1 Généralités116
      • 2.2 Exemple de classe comportant un constructeur116
      • 2.3 Quelques règles concernant les constructeurs117
      • 2.4 Construction et initialisation d'un objet119
      • 2.4.1 Initialisation par défaut des champs d'un objet 119
      • 2.4.2 Initialisation explicite des champs d'un objet 119
      • 2.4.3 Appel du constructeur 120
      • 2.4.4 Cas des champs déclarés avec l'attribut final 121
      • 3 - Éléments de conception des classes 123
      • 3.1 Les notions de contrat et d'implémentation123
      • 3.2 Typologie des méthodes d'une classe124
      • 4 - Affectation et comparaison d'objets 125
      • 4.1 Premier exemple125
      • 4.2 Second exemple126
      • 4.3 Initialisation de référence et référence nulle127
      • 4.4 La notion de clone128
      • 4.5 Comparaison d'objets129
      • 5 - Le ramasse-miettes 129
      • 6 - Règles d'écriture des méthodes 131
      • 6.1 Méthodes fonction131
      • 6.2 Les arguments d'une méthode132
      • 6.2.1 Arguments muets ou effectifs 132
      • 6.2.2 Conversion des arguments effectifs 132
      • 6.3 Propriétés des variables locales133
      • 7 - Champs et méthodes de classe 135
      • 7.1 Champs de classe135
      • 7.1.1 Présentation 135
      • 7.1.2 Exemple 136
      • 7.2 Méthodes de classe138
      • 7.2.1 Généralités 138
      • 7.2.2 Exemple 138
      • 7.2.3 Autres utilisations des méthodes de classe 139
      • 7.3 Initialisation des champs de classe140
      • 7.3.1 Généralités 140
      • 7.3.2 Bloc d'initialisation statique 140
      • 8 - Surdéfinition de méthodes 141
      • 8.1 Exemple introductif141
      • 8.2 En cas d'ambiguïté142
      • 8.3 Règles générales143
      • 8.4 Surdéfinition de constructeurs144
      • 8.5 Surdéfinition et droits d'accès146
      • 9 - Échange d'informations avec les méthodes 147
      • 9.1 Java transmet toujours les informations par valeur147
      • 9.2 Conséquences pour les types primitifs147
      • 9.3 Cas des objets transmis en argument148
      • 9.3.1 L'unité d'encapsulation est la classe 148
      • 9.3.2 Conséquences de la transmission de la référence d'un objet 150
      • 9.4 Cas de la valeur de retour153
      • 9.5 Autoréférence : le mot-clé this154
      • 9.5.1 Généralités 154
      • 9.5.2 Exemples d'utilisation de this 154
      • 9.5.3 Appels d'un constructeur au sein d'un autre constructeur 155
      • 10 - La récursivité des méthodes 156
      • 11 - Les objets membres 158
      • 12 - Les classes internes 161
      • 12.1 Imbrication de définition de classe161
      • 12.2 Lien entre objet interne et objet externe163
      • 12.3 Exemple complet165
      • 13 - Les paquetages 167
      • 13.1 Attribution d'une classe à un paquetage167
      • 13.2 Utilisation d'une classe d'un paquetage168
      • 13.3 Les paquetages standards169
      • 13.4 Paquetages et droits d'accès169
      • 13.4.1 Droits d'accès aux classes 169
      • 13.4.2 Droits d'accès aux membres d'une classe 170
      • 13.5 Structure et localisation des paquetages : classpath171
      • 13.5.1 Structure physique des paquetages 171
      • 13.5.2 Localisation des paquetages 171
      • 14 - Retour sur la déclaration var (Java 10) 172
      • Chapitre 7 : Les tableaux173
      • 1 - Déclaration et création de tableaux 173
      • 1.1 Introduction173
      • 1.2 Déclaration de tableaux174
      • 1.3 Création d'un tableau175
      • 1.3.1 Création par l'opérateur new 175
      • 1.3.2 Utilisation d'un initialiseur 175
      • 2 - Utilisation d'un tableau 176
      • 2.1 Accès individuel aux éléments d'un tableau176
      • 2.2 Affectation de tableaux177
      • 2.3 La taille d'un tableau : length179
      • 2.4 Exemple de tableau d'objets179
      • 2.5 Utilisation de la boucle for... each (JDK 5.0)180
      • 2.6 Cas particulier des tableaux de caractères181
      • 3 - Tableau en argument ou en retour 181
      • 4 - Les tableaux à plusieurs indices 182
      • 4.1 Présentation générale183
      • 4.2 Initialisation184
      • 4.3 Exemple185
      • 4.4 For... each et les tableaux à plusieurs indices (JDK 5.0)186
      • 4.5 Cas particulier des tableaux réguliers187
      • 5 - Arguments variables en nombre (JDK 5.0) 187
      • 5.1 Introduction187
      • 5.2 Quelques règles concernant l'ellipse189
      • 5.3 Adaptation des règles de recherche d'une méthode surdéfinie189
      • Chapitre 8 : L'héritage191
      • 1 - La notion d'héritage 192
      • 2 - Accès d'une classe dérivée aux membres de sa classe de base 195
      • 2.1 une classe dérivée n'accède pas aux membres privés195
      • 2.2 Elle accède aux membres publics195
      • 2.3 Exemple de programme complet196
      • 3 - Construction et initialisation des objets dérivés 198
      • 3.1 Appels des constructeurs198
      • 3.1.1 Exemple introductif 199
      • 3.1.2 Cas général 201
      • 3.2 Initialisation d'un objet dérivé203
      • 4 - Dérivations successives 204
      • 5 - Redéfinition et surdéfinition de membres 205
      • 5.1 Introduction205
      • 5.2 La notion de redéfinition de méthode205
      • 5.3 Redéfinition de méthode et dérivations successives208
      • 5.4 Surdéfinition et héritage208
      • 5.5 Utilisation simultanée de surdéfinition et de redéfinition209
      • 5.6 Cas particulier des méthodes et ellipse (JDK 5.0)210
      • 5.7 Contraintes portant sur la redéfinition210
      • 5.7.1 Valeur de retour 210
      • 5.7.2 Cas particulier des valeurs de retour covariantes (JDK 5.0) 211
      • 5.7.3 Les droits d'accès 212
      • 5.8 Règles générales de redéfinition et de surdéfinition213
      • 5.9 Duplication de champs214
      • 6 - Le polymorphisme 215
      • 6.1 Les bases du polymorphisme215
      • 6.2 Généralisation à plusieurs classes219
      • 6.3 Autre situation où l'on exploite le polymorphisme220
      • 6.4 Polymorphisme, redéfinition et surdéfinition223
      • 6.5 Conversions des arguments effectifs223
      • 6.5.1 Cas d'une méthode non surdéfinie 224
      • 6.5.2 Cas d'une méthode surdéfinie 224
      • 6.6 Les règles du polymorphisme en Java225
      • 6.7 Les conversions explicites de références226
      • 6.8 Le mot-clé super227
      • 6.9 Limites de l'héritage et du polymorphisme227
      • 7 - La super-classe Object 228
      • 7.1 Utilisation d'une référence de type Object229
      • 7.2 Utilisation de méthodes de la classe Object229
      • 7.2.1 La méthode toString 229
      • 7.2.2 La méthode equals 231
      • 8 - Les membres protégés 231
      • 9 - Cas particulier des tableaux 232
      • 10 - Classes et méthodes finales 233
      • 11 - Les classes abstraites 234
      • 11.1 Présentation234
      • 11.2 Quelques règles235
      • 11.3 Intérêt des classes abstraites236
      • 11.4 Exemple236
      • 12 - Les interfaces 238
      • 12.1 Mise en oeuvre d'une interface238
      • 12.1.1 Définition d'une interface 238
      • 12.1.2 Implémentation d'une interface 238
      • 12.2 Variables de type interface et polymorphisme239
      • 12.3 Interface et classe dérivée240
      • 12.4 Interfaces et constantes241
      • 12.5 Dérivation d'une interface241
      • 12.6 Conflits de noms242
      • 12.7 Méthodes par défaut et méthodes statiques (Java 8)243
      • 12.8 L'interface Cloneable245
      • 13 - Les classes enveloppes 245
      • 13.1 Construction et accès aux valeurs246
      • 13.2 Comparaisons avec la méthodes equals246
      • 13.3 Emballage et déballage automatique (JDK 5.0)246
      • 13.3.1 Présentation 246
      • 13.3.2 Limitations 247
      • 13.3.3 Conséquences sur la surdéfinition des méthodes 247
      • 14 - Éléments de conception des classes 248
      • 14.1 Respect du contrat248
      • 14.2 Relations entre classes248
      • 14.3 Différences entre interface et héritage249
      • 15 - Les classes anonymes 250
      • 15.1 Exemple de classe anonyme250
      • 15.2 Les classes anonymes d'une manière générale251
      • 15.2.1 Il s'agit de classes dérivées ou implémentant une interface 251
      • 15.2.2 Utilisation de la référence à une classe anonyme 252
      • 15.2.3 Accès aux variables de la classe englobante 252
      • 16 - Attention à la déclaration var (Java 10) 252
      • Chapitre 9 : Les chaînes de caractères et les types énumérés255
      • 1 - Fonctionnalités de base de la classe String 256
      • 1.1 Introduction256
      • 1.2 Un objet de type String n'est pas modifiable256
      • 1.3 Entrées-sorties de chaînes257
      • 1.4 Longueur d'une chaîne : length258
      • 1.5 Accès aux caractères d'une chaîne : charAt258
      • 1.6 Concaténation des chaînes259
      • 1.7 Conversions des opérandes de l'opérateur+260
      • 1.8 L'opérateur+=261
      • 1.9 Écriture des constantes chaînes262
      • 1.10 Simplification de l'écriture des blocs de texte (Java 14)262
      • 2 - Recherche dans une chaîne 264
      • 3 - Comparaisons de chaînes 265
      • 3.1 Les opérateurs = et !=265
      • 3.2 La méthode equals266
      • 3.3 La méthode compareTo266
      • 3.4 Utilisation de chaînes dans l'instruction switch267
      • 4 - Modification de chaînes 268
      • 5 - Tableaux de chaînes 269
      • 6 - Conversions entre chaînes et types primitifs 270
      • 6.1 Conversion d'un type primitif en une chaîne270
      • 6.2 Les conversions d'une chaîne en un type primitif272
      • 7 - Conversions entre chaînes et tableaux de caractères 274
      • 8 - Les arguments de la ligne de commande 275
      • 9 - La classe StringBuffer 276
      • 10 - Les types énumérés (JDK 5.0) 277
      • 10.1 Définition d'un type énuméré278
      • 10.2 Comparaisons de valeurs d'un type énuméré278
      • 10.2.1 Comparaisons d'égalité 278
      • 10.2.2 Comparaisons basées sur un ordre 278
      • 10.2.3 Exemple récapitulatif 279
      • 10.3 Utilisation d'un type énuméré dans une instruction switch279
      • 10.4 Conversions entre chaînes et types énumérés280
      • 10.5 Itération sur les valeurs d'un type énuméré281
      • 10.6 Lecture des valeurs d'un type énuméré282
      • 10.7 Ajout de méthodes et de champs à une classe d'énumération283
      • 10.7.1 Introduction 283
      • 10.7.2 Cas particulier des constructeurs 284
      • Chapitre 10 : La gestion des exceptions285
      • 1 - Premier exemple d'exception 286
      • 1.1 Comment déclencher une exception avec throw286
      • 1.2 Utilisation d'un gestionnaire d'exception287
      • 1.3 Le programme complet287
      • 1.4 Premières propriétés de la gestion d'exception288
      • 2 - Gestion de plusieurs exceptions 290
      • 3 - Transmission d'information au gestionnaire d'exception 292
      • 3.1 Par l'objet fourni à l'instruction throw292
      • 3.2 Par le constructeur de la classe exception293
      • 4 - Le mécanisme de gestion des exceptions 294
      • 4.1 Poursuite de l'exécution295
      • 4.2 Choix du gestionnaire d'exception296
      • 4.3 Cheminement des exceptions297
      • 4.4 La clause throws298
      • 4.5 Redéclenchement d'une exception298
      • 4.6 Le bloc finally301
      • 4.7 Gestion automatique des ressources (depuis le JDK7.0)303
      • 5 - Les exceptions standards 303
      • 6 - La méthode printStackTrace 305
      • Chapitre 11 : Les threads307
      • 1 - Exemple introductif 308
      • 2 - Utilisation de l'interface Runnable 310
      • 3 - Interruption d'un thread 313
      • 3.1 Démarche usuelle d'interruption par un autre thread313
      • 3.2 Threads démons et arrêt brutal315
      • 4 - Coordination de threads 317
      • 4.1 Méthodes synchronisées317
      • 4.2 Exemple318
      • 4.3 Notion de verrou320
      • 4.4 L'instruction synchronized321
      • 4.5 Interblocage321
      • 4.6 Attente et notification322
      • 5 - États d'un thread 326
      • 6 - Priorités des threads 327
      • Chapitre 12 : Les bases de la programmation graphique329
      • 1 - Première fenêtre 330
      • 1.1 La classe JFrame330
      • 1.2 Arrêt du programme332
      • 1.3 Création d'une classe fenêtre personnalisée332
      • 1.4 Action sur les caractéristiques d'une fenêtre333
      • 2 - Gestion d'un clic dans la fenêtre 335
      • 2.1 Implémentation de l'interface MouseListener335
      • 2.2 Utilisation de l'information associée à un événement338
      • 2.3 La notion d'adaptateur339
      • 2.4 La gestion des événements en général341
      • 3 - Premier composant : un bouton 342
      • 3.1 Création d'un bouton et ajout dans la fenêtre342
      • 3.2 Affichage du bouton : la notion de gestionnaire de mise en forme342
      • 3.3. Gestion du bouton avec un écouteur345
      • 4 - Gestion de plusieurs composants 346
      • 4.1 La fenêtre écoute les boutons347
      • 4.1.1 Tous les boutons déclenchent la même réponse 347
      • 4.1.2 La méthode getSource 348
      • 4.1.3 La méthode getActionCommand 350
      • 4.2 Classe écouteur différente de la fenêtre352
      • 4.2.1 Une classe écouteur pour chaque bouton 352
      • 4.2.2 Une seule classe écouteur pour les deux boutons 353
      • 4.3 Dynamique des composants355
      • 5 - Premier dessin 358
      • 5.1 Création d'un panneau359
      • 5.2 Dessin dans le panneau360
      • 5.3 Forcer le dessin362
      • 5.4 Ne pas redéfinir inutilement paintComponent364
      • 5.5 Notion de rectangle invalide365
      • 6 - Dessiner à la volée 365
      • 7 - Gestion des dimensions 368
      • 7.1 Connaître les dimensions de l'écran368
      • 7.2 Connaître les dimensions d'un composant368
      • 7.3 Agir sur la taille d'un composant369
      • 7.3.1 Agir sur la « taille préférentielle » d'un composant 369
      • 7.3.2 Agir sur la taille maximale ou la taille minimale d'un composant 371
      • Chapitre 13 : Les contrôles usuels373
      • 1 - Les cases à cocher 374
      • 1.1 Généralités374
      • 1.2 Exploitation d'une case à cocher374
      • 1.2.1 Réaction à l'action sur une case à cocher 374
      • 1.2.2 État d'une case à cocher 375
      • 1.3 Exemple375
      • 2 - Les boutons radio 377
      • 2.1 Généralités377
      • 2.2 Exploitation de boutons radio378
      • 2.2.1 Réaction à l'action sur un bouton radio 378
      • 2.2.2 État d'un bouton radio 379
      • 2.3 Exemples379
      • 3 - Les étiquettes 383
      • 3.1 Généralités383
      • 3.2 Exemple383
      • 4 - Les champs de texte 385
      • 4.1 Généralités385
      • 4.2 Exploitation usuelle d'un champ de texte385
      • 4.3 Exploitation fine d'un champ de texte390
      • 5 - Les boîtes de liste 391
      • 5.1 Généralités391
      • 5.2 Exploitation d'une boîte de liste393
      • 5.2.1 Accès aux informations sélectionnées 393
      • 5.2.2 Événements générés par les boîtes de liste 394
      • 5.3 Exemple395
      • 6 - Les boîtes combo 397
      • 6.1 Généralités397
      • 6.1.1 La boîte combo pour l'utilisateur du programme 397
      • 6.1.2 Construction d'une boîte combo 398
      • 6.2 Exploitation d'une boîte combo398
      • 6.2.1 Accès à l'information sélectionnée ou saisie 399
      • 6.2.2 Les événements générés par une boîte combo 399
      • 6.2.3 Exemple 400
      • 6.3 Évolution dynamique de la liste d'une boîte combo401
      • 6.3.1 Les principales possibilités 401
      • 6.3.2 Exemple 401
      • 7 - Exemple d'application 403
      • Chapitre 14 : Les boîtes de dialogue407
      • 1 - Les boîtes de message 407
      • 1.1 La boîte de message usuelle408
      • 2.2 Autres possibilités409
      • 2 - Les boîtes de confirmation 410
      • 2.1 La boîte de confirmation usuelle410
      • 2.2 Autres possibilités412
      • 3 - Les boîtes de saisie 413
      • 3.1 La boîte de saisie usuelle413
      • 3.2 Autres possibilités414
      • 4 - Les boîtes d'options 414
      • 5 - Les boîtes de dialogue personnalisées 417
      • 5.1 Construction et affichage d'une boîte de dialogue417
      • 5.1.1 Construction 417
      • 5.1.2 Affichage 418
      • 5.1.3 Exemple 418
      • 5.1.4 Utilisation d'une classe dérivée de JDialog 419
      • 5.2 Exemple simple de boîte de dialogue420
      • 5.2.1 Introduction des composants 420
      • 5.2.2 Gestion du dialogue 421
      • 5.2.3 Récupération des informations 422
      • 5.2.4 Gestion de l'objet boîte de dialogue 422
      • 5.2.5 Exemple complet 422
      • 5.3 Canevas général d'utilisation d'une boîte de dialogue modale425
      • 6 - Exemple d'application 426
      • Chapitre 15 : Les menus, les actions et les barres d'outils431
      • 1 - Les principes des menus déroulants 432
      • 1.1 Création432
      • 1.2 Événements générés433
      • 1.3 Exemple433
      • 2 - Les différentes sortes d'options 435
      • 3 - Les menus surgissants 438
      • 4 - Raccourcis clavier 441
      • 4.1 Les caractères mnémoniques441
      • 4.2 Les accélérateurs442
      • 4.3 Exemple443
      • 5 - Les bulles d'aide 444
      • 6 - Composition des options 445
      • 6.1 Exemple avec des menus déroulants usuels445
      • 6.2 Exemple avec un menu surgissant446
      • 7 - Menus dynamiques 447
      • 7.1 Activation et désactivation d'options447
      • 7.2 Modification du contenu d'un menu448
      • 8 - Les actions 448
      • 8.1 Présentation de la notion d'action abstraite448
      • 8.1.1 Définition d'une classe action 449
      • 8.1.2 Rattachement d'une action à un composant 449
      • 8.1.3 Gestion des événements associés à une action 449
      • 8.1.4 Exemple complet 450
      • 8.2 Association d'une même action à plusieurs composants451
      • 8.3 Cas des boutons453
      • 8.4 Autres possibilités de la classe AbstractAction455
      • 8.4.1 Informations associées à la classe AbstractAction 455
      • 8.4.2 Activation/désactivation d'options 456
      • 9 - Les barres d'outils 456
      • 9.1 Généralités456
      • 9.2 Barres d'outils flottantes ou intégrées458
      • 9.3 Utilisation d'icônes dans les barres d'outils458
      • 9.4 Association d'actions à une barre d'outils459
      • 10 - Exemple d'application 460
      • Chapitre 16 : Les événements de bas niveau465
      • 1 - Les événements liés à la souris 466
      • 1.1 Gestion de l'appui et du relâchement des boutons466
      • 1.2 Identification du bouton et clics multiples468
      • 1.3 Gestion des déplacements de la souris470
      • 1.4 Exemple de sélection de zone472
      • 2 - Les événements liés au clavier 474
      • 2.1 Les événements générés474
      • 2.2 Identification des touches475
      • 2.3 Exemple477
      • 2.4 État des touches modificatrices478
      • 2.5 Source d'un événement clavier479
      • 2.6 Capture de certaines actions du clavier479
      • 2.6.1 Capture par la fenêtre 479
      • 2.6.2 Capture par des actions 480
      • 2.7 Exemple combinant clavier et souris482
      • 3 - Les événements liés aux fenêtres 484
      • 3.1 Généralités484
      • 3.2 Arrêt du programme sur fermeture de la fenêtre485
      • 4 - Les événements liés à la focalisation 485
      • 4.1 Généralités485
      • 4.2 Forcer le focus486
      • 4.3 Exemple487
      • Chapitre 17 : Les gestionnaires de mise en forme489
      • 1 - Le gestionnaire BorderLayout 490
      • 2 - Le gestionnaire FlowLayout 492
      • 3 - Le gestionnaire CardLayout 494
      • 4 - Le gestionnaire GridLayout 497
      • 5 - Le gestionnaire BoxLayout 498
      • 5.1 Généralités498
      • 5.2 Exemple de box horizontal499
      • 5.3 Exemple de box vertical500
      • 5.4 Modifier l'espacement avec strut et glue501
      • 6 - Le gestionnaire GirdBagLayout 503
      • 6.1 Présentation générale503
      • 6.2 Exemple504
      • 7 - Le gestionnaire GroupLayout 506
      • 7.1 Exemple d'introduction507
      • 7.2 Exemple avec deux groupes509
      • Chapitre 18 : Textes et graphiques513
      • 1 - Déterminer la position du texte 514
      • 1.1 Deux textes consécutifs sur une même ligne514
      • 1.2 Affichage de deux lignes consécutives516
      • 1.3 Les différentes informations relatives à une fonte517
      • 2 - Choix de fontes 518
      • 2.1 Les fontes logiques519
      • 2.2 Les fontes physiques521
      • 3 - Les objets couleur 524
      • 3.1 Les constantes couleur prédéfinies524
      • 3.2 Construction d'un objet couleur524
      • 4 - Les tracés de lignes 525
      • 4.1 Généralités525
      • 4.2 Lignes droites, rectangles et ellipses526
      • 4.3 Rectangles à coins arrondis527
      • 4.4 Polygones et lignes brisées528
      • 4.5 Tracés d'arcs530
      • 5 - Remplissage de formes 531
      • 6 - Mode de dessin 533
      • 7 - Affichage d'images 536
      • 7.1 Formats d'images536
      • 7.2 Charger une image et l'afficher536
      • 7.2.1 Chargement d'une image avec attente 537
      • 7.2.2 Chargement d'une image sans attente 539
      • Chapitre 19 : Les applets541
      • 1 - Première applet 541
      • 2 - Lancement d'une applet 543
      • 2.1 Généralités543
      • 2.2 Fichier HTML de lancement d'une applet544
      • 3 - La méthode init 545
      • 3.1 Généralités545
      • 3.2 Exemple546
      • 4 - Différents stades de la vie d'une applet 547
      • 5 - Transmission d'informations à une applet 549
      • 6 - Restrictions imposées aux applets 551
      • 7 - Transformation d'une application graphique en une applet 551
      • Chapitre 20 : les flux et les fichiers557
      • 1 - Création séquentielle d'un fichier binaire 558
      • 1.1 Généralités558
      • 1.2 Exemple de programme559
      • 2 - Liste séquentielle d'un fichier binaire 561
      • 2.1 Généralités561
      • 2.2 Exemple de programme562
      • 3 - Accès direct à un fichier binaire 564
      • 3.1 Introduction564
      • 3.2 Exemple d'accès direct à un fichier existant565
      • 3.3 Les possibilités de l'accès direct566
      • 3.4 En cas d'erreur566
      • 3.4.1 Erreur de pointage 566
      • 3.4.2 Positionnement hors fichier 567
      • 4 - Les flux texte 568
      • 4.1 Introduction568
      • 4.2 Création d'un fichier texte569
      • 4.2.1 Généralités 569
      • 4.2.2 Exemple 570
      • 4.3 Exemple de lecture d'un fichier texte571
      • 4.3.1 Accès aux lignes d'un fichier texte 572
      • 4.3.2 La classe StringTokenizer 573
      • 5 - Les flux d'objets 576
      • 5.1 Généralités576
      • 5.2 Exemple de création d'un flux d'objets577
      • 5.3 Exemple de lecture d'un flux d'objets577
      • 5.4 Cas des objets comportant des références à d'autres objets578
      • 5.5 Autres propriétés des flux d'objets579
      • 6 - La gestion des fichiers avec la classe File 579
      • 6.1 Création d'objets de type File579
      • 6.2 Utilisation d'objets de type File dans les constructeurs de flux581
      • 6.3 Exploitation d'objets de type File581
      • 7 - Les flux en général 583
      • 7.1 Généralités584
      • 7.2 Les flux binaires de sortie585
      • 7.3 Les flux binaires d'entrée586
      • 7.4 Les fichiers à accès direct588
      • 7.5 Les flux texte de sortie588
      • 7.6 Les flux texte d'entrée590
      • 8 - Les sockets 591
      • 8.1 Côté serveur591
      • 8.2 Côté client592
      • 9 - Les nouvelles possibilités NIO.2 (JDK 7) 593
      • 9.1 La gestion de fichier avec les objets de type Path593
      • 9.1.1 Création d'un objet de type Path 593
      • 9.1.2 Exploitation d'objets de type Path 594
      • 9.1.3 Parcours d'un répertoire 596
      • 9.1.4 Accès aux métadonnées 597
      • 9.1.5 Autres possibilités 597
      • 9.2 NIO.2 et les flux597
      • 9.2.1 Nouvelles méthodes de création de flux binaires 598
      • 9.2.2 Nouvelles méthodes de création de flux texte 598
      • 9.2.3 Méthodes pour les petits fichiers 598
      • 9.2.4 Canaux et tampons 599
      • Chapitre 21 : La programmation générique601
      • 1 - Notion de classe générique 602
      • 1.1 Exemple de classe générique à un seul paramètre de type602
      • 1.1.1 Définition de la classe 602
      • 1.1.2 Utilisation de la classe 603
      • 1.2 Exemple de classe générique à plusieurs paramètres de type604
      • 2 - Compilation du code générique 605
      • 2.1 Introduction605
      • 2.2 Compilation d'une classe générique606
      • 2.3 Compilation de l'utilisation d'une classe générique606
      • 2.4 Limitations portant sur les classes génériques607
      • 2.4.1 On ne peut pas instancier un objet d'un type paramétré 607
      • 2.4.2 On ne peut pas instancier de tableaux d'éléments d'un type générique 608
      • 2.4.3 Seul le type brut est connu lors de l'exécution 608
      • 2.4.4 Autres limitations 609
      • 3 - Méthodes génériques 610
      • 3.1 Exemple de méthode générique à un seul argument610
      • 3.2 Exemple de méthode générique à deux arguments611
      • 4 - Limitations des paramètres de type 613
      • 4.1 Exemple avec une classe générique613
      • 4.2 Exemple avec une méthode générique614
      • 4.3 Règles générales614
      • 5 - Héritage et programmation générique 615
      • 5.1 Dérivation d'une classe générique615
      • 5.2 Si T' dérive du T, C(...)T'(...) ne dérive pas de C(...)T(...)616
      • 5.3 Préservation du polymorphisme618
      • 6 - Les jokers 619
      • 6.1 Le concept de joker simple619
      • 6.2 Jokers avec limitations620
      • 6.3 Joker appliqué à une méthode621
      • Chapitre 22 : Les collections et les algorithmes623
      • 1 - Concepts généraux utilisés dans les collections 624
      • 1.1 La généricité suivant la version de Java624
      • 1.2 Ordre des éléments d'une collection625
      • 1.2.1 Utilisation de la méthode compareTo 626
      • 1.2.2 Utilisation d'un objet comparateur 626
      • 1.3 Égalité d'éléments d'une collection627
      • 1.4 Les itérateurs et leurs méthodes628
      • 1.4.1 Les itérateurs monodirectionnels : l'interface Iterator 628
      • 1.4.2 Les itérateurs bidirectionnels : l'interface ListIterator 631
      • 1.4.3 Les limitations des itérateurs 633
      • 1.5 Efficacité des opérations sur les collections634
      • 1.6 Opérations communes à toutes les collections634
      • 1.6.1 Construction 635
      • 1.6.2 Opérations liées à un itérateur 635
      • 1.6.3 Modifications indépendantes d'un itérateur 636
      • 1.6.4 Opérations collectives 636
      • 1.6.5 Autres méthodes 637
      • 1.7 Structure générale des collections638
      • 2 - Les listes chaînées - classe LinkedList 639
      • 2.1 Généralités639
      • 2.2 Opérations usuelles639
      • 2.3 Exemples641
      • 2.4 Autres possibilités peu courantes643
      • 2.5 Méthodes introduites par Java 5 et Java 6644
      • 3 - Les vecteurs dynamiques - classe ArrayList 644
      • 3.1 Généralités644
      • 3.2 Opérations usuelles645
      • 3.3 Exemple647
      • 3.4 Gestion de l'emplacement d'un vecteur648
      • 3.5 Autres possibilités peu usuelles648
      • 3.6 L'ancienne classe Vector649
      • 4 - Les ensembles 649
      • 4.1 Généralités649
      • 4.2 Opérations usuelles650
      • 4.3 Exemple652
      • 4.4 Opérations ensemblistes653
      • 4.5 Les ensembles HashSet655
      • 4.5.1 Notion de table de hachage 655
      • 4.5.2 La méthode hashCode 657
      • 4.5.3 Exemple 657
      • 4.6 Les ensembles TreeSet659
      • 4.6.1 Généralités 659
      • 4.6.2 Exemple 659
      • 5 - Les queues (JDK 5.0) 660
      • 5.1 L'interface Queue660
      • 5.2 Les classes implémentant l'interface Queue661
      • 6 - Les queues à double entrée Deque (Java 6) 661
      • 6.1 L'interface Deque661
      • 6.2 La classe ArrrayDeque662
      • 7 - Les algorithmes 662
      • 7.1 Recherche de maximum ou de minimum663
      • 7.2 Tris et mélanges664
      • 7.3 Autres algorithmes665
      • 8 - Les tables associatives 666
      • 8.1 Généralités666
      • 8.2 Implémentation666
      • 8.3 Présentation générale des classes HashMap et TreeMap667
      • 8.4 Parcours d'une table ; notion de vue668
      • 8.5 Autres vues associées à une table669
      • 8.6 Exemple669
      • 9 - Vues synchronisées ou non modifiables 672
      • 10 - Retour sur la déclaration var (Java 10) 672
      • Chapitre 23 : Expressions lambda et streams675
      • 1 - Introduction aux expressions lambda 675
      • 1.1 Premiers exemples d'expression lambda676
      • 1.2 Autre situation utilisant une expression lambda678
      • 2 - Interface fonctionnelle 679
      • 2.1 Notion d'interface fonctionnelle679
      • 2.2 Interfaces fonctionnelles standards679
      • 3 - Quelques règles 682
      • 3.1 Syntaxe des expressions lambda682
      • 3.2 Contexte d'utilisation d'une expression lambda683
      • 3.2.1 Expression lamda dans une instruction return 683
      • 3.2.2 Composition d'expressions lambda 684
      • 3.2.3 Tableau d'expressions lambda 684
      • 3.3 Règles de compatibilité685
      • 3.4 Expressions lambdas et portée des variables685
      • 4 - Références de méthodes 686
      • 4.1 Référence à une méthode statique686
      • 4.2 Référence à une méthode de classe687
      • 4.3 Référence à une méthode associée à un objet688
      • 4.4 Références à un constructeur689
      • 5 - Utilisation en programmation événementielle 690
      • 6 - La méthode forEach 690
      • 7 - Les nouvelles méthodes de l'interface Comparator 691
      • 8 - Présentation des streams 693
      • 9 - Différentes façons de créer un stream 694
      • 9.1 Les différents types de streams694
      • 9.1.1 Nature des éléments 694
      • 9.1.2 Stream séquentiel ou parallèle, ordre d'un stream 695
      • 9.2 Les différentes sources d'un stream696
      • 9.2.1 Création à partir d'une collection 696
      • 9.2.2 Création à partir d'une liste de valeurs 696
      • 9.2.3 Création avec une fonction génératrice 696
      • 9.2.4 Création avec une méthode itérative 697
      • 9.2.5 Création d'un stream parallèle 697
      • 9.2.6 Exemple 698
      • 10 - Les méthodes intermédiaires d'un stream 699
      • 10.1 La méthode map699
      • 10.2 La méthode sorted699
      • 10.3 La méthode peek700
      • 10.4 Quelques autres méthodes700
      • 10.5 Exemple700
      • 11 - Les méthodes terminales d'un stream 701
      • 12 - La méthode reduce 703
      • 13 - La méthode collect 704
      • Chapitre 24 : L'introspection et les annotations707
      • 1 - Les bases de l'introspection : le type Class 708
      • 1.1 Déclaration d'instances du type Class708
      • 1.2 Le champ class et La méthode getClass708
      • 1.3 La méthode getName710
      • 1.4 Exemple de programme710
      • 2 - Accès aux informations relatives à une classe 711
      • 2.1 Généralités : les types Field, Method et Constructor711
      • 2.2 Exemple d'accès aux noms de champs et méthodes712
      • 2.3 Accès aux autres informations714
      • 2.3.1 Des champs 714
      • 2.3.2 Des méthodes 715
      • 2.3.3 Test d'appartenance 717
      • 3 - Consultation et modification des champs d'un objet 718
      • 4 - La notion d'annotation 720
      • 4.1 Exemple simple d'annotation720
      • 4.2 Les paramètres d'une annotation721
      • 4.2.1 Présentation 721
      • 4.2.2 Paramètres par défaut 722
      • 4.2.3 Cas particulier du paramètre nommé value 722
      • 4.2.4 Un paramètre peut être un tableau 723
      • 5 - Les méta-annotations standards 723
      • 5.1 La méta-annotation @Retention723
      • 5.2 La méta-annotation @Target724
      • 5.3 La méta-annotation @Inherit725
      • 5.4 La méta-annotation @Documented726
      • 6 - Les annotations standards 726
      • 6.1 @Override726
      • 6.2 @Deprecated727
      • 6.3 @Suppress Warning727
      • 6.4 @Generated (Java 6)727
      • 7 - Syntaxe générale des annotations 728
      • 8 - Exploitation des annotations par introspection 729
      • 8.1 Test de présence et récupération des paramètres729
      • 8.2 Obtenir toutes les annotations présentes sur un élément731
      • Chapitre 25 : La gestion du temps, des dates et des heures (Java 8)733
      • 1 - Instants et durées (temps machine) 734
      • 1.1 La définition de la seconde734
      • 1.2 Exemples d'introduction734
      • 1.2.1 Calcul d'une durée d'exécution 734
      • 1.2.2 Réalisation d'une boucle de durée déterminée 735
      • 1.3 Les possibilités des classes Instant et Duration736
      • 2 - La classe LocalDate 737
      • 2.1 Exemple737
      • 2.2 D'une manière générale738
      • 2.3 Ajustement de date739
      • 3 - La classe LocalTime 740
      • 4 - La classe LocalDate Time 742
      • 5 - Gestion du temps avec fuseau horaire 743
      • 6 - Formatage de dates 745
      • Chapitre 26 : Les modules (Java 9)747
      • 1 - Les modules comblent certaines lacunes des paquetages 748
      • 2 - Exemple introductif 749
      • 2.1 Structures des modules sources750
      • 2.2 Compilation des modules750
      • 3 - Déclarations de modules 751
      • 3.1 Structure d'un fichier de déclaration de module751
      • 3.2 Les instructions d'un fichier de déclaration de module752
      • 3.2.1 exports 752
      • 3.2.2 requires 752
      • 3.2.3 opens 753
      • 4 - Localisation des modules : module path 754
      • 5 - Compatibilité de Java 9 avec les versions antérieures 754
      • 5.1 Les modules anonymes755
      • 5.2 Les modules automatiques755
      • 5.3 Récapitulatif des différents types de modules756
      • 5.4 Relaxation des contraintes d'encapsulation756
      • Chapitre 27 : JShell (Java 9)757
      • 1 - Exemples introductifs 757
      • 1.1 Premiers snippets758
      • 1.2 Premières commandes759
      • 1.3 Mettre fin à une session : /exit760
      • 1.4 Créer un snippet s'étendant sur plusieurs lignes760
      • 1.5 On peut réexécuter un snippet à volonté761
      • 2 - Édition de snippets 762
      • 3 - JShell et le snippet import 764
      • 4 - Situations d'erreur 765
      • 4.1 Erreurs dans l'écriture des snippets765
      • 4.2 Exceptions lors de l'exécution d'un snippet767
      • 4.3 La commande /drop767
      • 5 - Déclaration de types 768
      • 6 - Déclaration de méthodes indépendantes 769
      • 7 - Gestion des sessions 770
      • 7.1 Choix des informations affichées770
      • 7.2 Historique des commandes passées771
      • 7.3 Sauvegarde et récupération d'une session772
      • 7.3.1 Snippets seuls 772
      • 7.3.2 Snippets et commandes 774
      • 7.4 Utilisation de code existant774
      • 7.5 Paramètres-start et-all775
      • 7.6 Réinitialisation et restauration de session775
      • 7.6.1 La commande / reset 775
      • 7.6.2 La commande / reload 776
      • 8 - Gestion de l'environnement 777
      • 8.1 Utiliser une classe déjà compilée dans un paquetage777
      • 8.2 Utiliser un module existant778
      • 8.2.1 Utilisation dans JShell d'une classe d'un module 778
      • 8.2.2 Exécution d'une méthode main d'un module 779
      • 8.3 Définir des snippets et commandes de démarrage780
      • Chapitre 28 : La programmation Java côté serveur : servlets et JSP783
      • 1 - Première servlet 784
      • 1.1 Écriture de la servlet784
      • 1.1.1 La classe HttpServlet et la méthode doGet 784
      • 1.1.2 Construction de la réponse au client 785
      • 1.2 Exécution de la servlet depuis le client786
      • 1.3 Installation de la servlet sur le serveur786
      • 1.4 Test du fonctionnement d'une servlet787
      • 2 - Transmission de paramètres à une servlet 788
      • 2.1 Transmission de paramètres par GET789
      • 2.1.1 Appel de la servlet 789
      • 2.1.2 Écriture de la servlet 789
      • 2.1.3 Exemple d'exécution 791
      • 2.2 Utilisation d'un formulaire HTML791
      • 2.3 Utilisation de la méthode POST793
      • 3 - Cycle de vie d'une servlet : les méthodes init et destroy 795
      • 4 - Exemple de servlet de calcul de factorielles 797
      • 5 - Premières notions de JSP 799
      • 5.1 Présentation des JSP799
      • 5.2 Notion de scriptlet799
      • 5.3 Exécution d'un JSP800
      • 6 - Transmission de paramètres à un JSP : l'objet request 801
      • 7 - Les différents éléments de script d'un JSP 802
      • 7.1 Possibilités algorithmiques des scriptlets803
      • 7.2 Les expressions803
      • 7.2.1 Introduction 803
      • 7.2.2 Exemples 804
      • 7.2.3 Les expressions d'une manière générale 805
      • 7.3 Commentaires805
      • 7.4 Les balises de déclaration806
      • 7.4.1 Présentation 806
      • 7.4.2 Exemple de déclaration de variables d'instances (champs) 806
      • 7.4.3 Déclarations de méthodes d'instance 808
      • 7.4.4 Les balises de déclaration en général 808
      • 7.5 Exemple de JSP de calcul de factorielles808
      • 8 - Utilisation de JavaBeans dans des JSP 810
      • 8.1 Introduction à la notion de JavaBean810
      • 8.1.1 Utilisation d'un objet usuel dans un JSP 810
      • 8.1.2 Utilisation d'un objet de type JavaBean 811
      • 8.2 Utilisation directe de paramètres dans des JavaBeans813
      • 8.3 Exemple d'utilisation d'une classe Point transformée en JavaBean813
      • 8.4 Portée d'un JavaBean815
      • 8.4.1 Notion de suivi de session 815
      • 8.4.2 Suivi de session avec les JSP et les JavaBeans 815
      • 8.4.3 Les différentes portées d'un JavaBean 816
      • 8.5 Informations complémentaires sur les JavaBeans816
      • 9 - Possibilités de composition des JSP 817
      • 9.1 Inclusion statique d'une page JSP dans une autre817
      • 9.2 Chaînage de JSP817
      • 9.3 Inclusion dynamique de JSP818
      • 10 - Architecture des applications Web 818
      • Chapitre 29 : Utilisation de bases de données avec JDBC819
      • 1 - Introduction 819
      • 2 - un premier exemple 821
      • 2.1 Choix du pilote821
      • 2.2 Établissement d'une connexion822
      • 2.3 Interrogation de la base823
      • 2.4 Exploitation du résultat823
      • 2.5 Libération des ressources824
      • 2.6 Le programme complet824
      • 3 - Les requêtes SQL 826
      • 3.1 Généralités826
      • 3.2 Requêtes de sélection826
      • 3.3 Requêtes de mise à jour828
      • 3.4 Requêtes de gestion829
      • 4 - Exécution d'une requête SQL 830
      • 5 - Exploitation des résultats d'une sélection SQL 830
      • 5.1 Les types SQL et les méthodes d'accès831
      • 5.2 Parcours et actualisation des données832
      • 5.2.1 Choix du mode de parcours et d'actualisation des résultats 833
      • 5.2.2 Les méthodes agissant sur le curseur 834
      • 5.2.3 Actualisation de la base 835
      • 5.2.4 Exemple 1 836
      • 5.2.5 Exemple 2 837
      • 6 - Les requêtes préparées 839
      • 7 - L'interface Rowset 842
      • 7.1 Introduction842
      • 7.2 La classe JDBCRowSetImpl843
      • 7.2.1 Construction à partir d'un objet de type ResultSet 843
      • 7.2.2 Construction d'un objet autonome 844
      • 7.3 La classe CachedRowSetImpl845
      • 7.3.1 Construction à partir d'un objet de type ResultSet 845
      • 7.3.2 Construction d'un objet autonome 846
      • 8 - Les métadonnées 848
      • 8.1 Généralités848
      • 8.2 Métadonnées associées à un résultat849
      • 8.2.1 Exemple 1 849
      • 8.2.2 Exemple 2 850
      • 8.3 Métadonnées associées à la base851
      • 8.3.1 Informations sur le SGDBR et le pilote 852
      • 8.3.2 Informations sur la structure de la base 853
      • 9 - Les transactions 855
      • Chapitre 30 : Introduction aux Design Patterns859
      • 1 - Généralités 860
      • 1.1 Historique860
      • 1.2 Patterns et P.O.O861
      • 1.3 Patterns et C.O.O861
      • 2 - Les patterns de construction 862
      • 2.1 Le pattern Factory Method (Fabrique)862
      • 2.1.1 Premier exemple 862
      • 2.1.2 Deuxième exemple 864
      • 2.1.3 Discussion 865
      • 2.2 Le pattern Abstract Factory (Fabrique Abstraite)866
      • 2.2.1 Présentation 866
      • 2.2.2 Discussion 868
      • 3 - Les patterns de structure 869
      • 3.1 Le pattern Composite869
      • 3.1.1 Présentation 869
      • 3.1.2 Discussion 872
      • 3.2 Le pattern Adapter (Adaptateur)872
      • 3.2.1 Adaptateur d'objet 873
      • 3.2.2 Adaptateur de classe 874
      • 3.2.3 Discussion 876
      • 3.3 Le pattern Decorator (Décorateur)876
      • 3.3.1 Présentation 876
      • 3.3.2 Classe abstraite de décorateurs 878
      • 3.3.3 Discussion 879
      • 4 - Les patterns comportementaux 880
      • 4.1 Le pattern Strategy (Stratégie)880
      • 4.1.1 Présentation 880
      • 4.1.2 Discussion 882
      • 4.2 Le pattern Template Method (Patron de méthode)883
      • 4.2.1 Présentation 883
      • 4.2.2 Discussion 884
      • 4.3 Le pattern Observer (Observateur)885
      • 4.3.1 Sa mise en oeuvre en Java 885
      • 4.3.2 Discussion 885
      • 4.3.3 Le pattern Observer en général 888
      • Annexes891
      • Annexe A : Les droits d'accès aux membres, classes et interfaces893
      • 1 - Modificateurs d'accès des classes et interfaces 893
      • 2 - Modificateurs d'accès pour les membres et les classes internes 894
      • 3 - Modificateurs d'accès pour les méthodes des interfaces 894
      • Annexe B : La classe Clavier895
      • Annexe C : Les constantes et fonctions mathématiques899
      • Annexe D : Les exceptions standards901
      • 1 - Paquetage standard (java.lang) 901
      • 1.1 Exceptions explicites901
      • 1.2 Exceptions implicites902
      • 2 - Paquetage java.io 902
      • 3 - Paquetage java.awt 903
      • 3.1 Exceptions explicites903
      • 3.2 Exceptions implicites903
      • 4 - Paquetage java.util 903
      • 4.1 Exceptions explicites903
      • 4.2 Exceptions implicites903
      • Annexe E : Les composants graphiques et leurs méthodes905
      • 1 - Les classes de composants 906
      • 2 - Les méthodes 907
      • Annexe F : Les événements et les écouteurs915
      • 1 - Les événements de bas niveau 916
      • 2 - Les événements sémantiques 917
      • 3 - Les méthodes des événements 918
      • Annexe G : Les collections921
      • 1 - Les interfaces 922
      • 2 - Les classes implémentant List 927
      • 3 - Les classes implémentant Set 928
      • 4 - Les classes implémentant Queue (depuis JKD5 seulement) 929
      • 5 - Les classes implémentant Deque (depuis JDK5 seulement) 929
      • 6 - Les classes implémentant Map 930
      • 7 - Les algorithmes de la classe Collections 930
      • Annexe H : Professionnalisation des applications935
      • 1 - Incorporation d'icônes dans la barre des tâches 935
      • 2 - La classe Desktop 937
      • 3 - La classe Console 939
      • 4 - Action sur l'aspect des composants 941
      • Index943

  • Origine de la notice:
    • Electre
  • Disponible - 681.225 DEL

    Niveau 3 - Informatique