SlideShare a Scribd company logo
1 of 2036
Download to read offline
Développons en Java
    Jean Michel DOUDOUX
Table des matières
Développons en Java.............................................................................................................................................................1

Préambule..............................................................................................................................................................................2
      A propos de ce document.........................................................................................................................................2
      Remerciements.........................................................................................................................................................4
      Notes de licence.......................................................................................................................................................4
      Marques déposées....................................................................................................................................................4
      Historique des versions............................................................................................................................................5

Partie 1 : les bases du langage Java....................................................................................................................................7

1. Présentation de Java.........................................................................................................................................................8
        1.1. Les caractéristiques...........................................................................................................................................8
        1.2. Un bref historique de Java        .................................................................................................................................9
        1.3. Les différentes éditions et versions de Java....................................................................................................10
             1.3.1. Les évolutions des plates-formes Java..................................................................................................11
             1.3.2. Les différentes versions de Java              ............................................................................................................11
             1.3.3. Java 1.0..................................................................................................................................................12
             1.3.4. Java 1.1..................................................................................................................................................12
             1.3.5. Java 1.2 (nom de code Playground)......................................................................................................13
             1.3.6. J2SE 1.3 (nom de code Kestrel)............................................................................................................13
             1.3.7. J2SE 1.4 (nom de code Merlin)............................................................................................................13
             1.3.8. J2SE 5.0 (nom de code Tiger)...............................................................................................................14
             1.3.9. Java SE 6 (nom de code Mustang)........................................................................................................14
             1.3.10. Java 6 update.......................................................................................................................................17
                  1.3.10.1. Java 6 update 1..........................................................................................................................18
                  1.3.10.2. Java 6 update 2..........................................................................................................................18
                  1.3.10.3. Java 6 update 3..........................................................................................................................18
                  1.3.10.4. Java 6 update 4..........................................................................................................................18
                  1.3.10.5. Java 6 update 5..........................................................................................................................18
                  1.3.10.6. Java 6 update 6..........................................................................................................................20
                  1.3.10.7. Java 6 update 7..........................................................................................................................20
                  1.3.10.8. Java 6 update 10........................................................................................................................21
                  1.3.10.9. Java 6 update 11........................................................................................................................21
                  1.3.10.10. Java 6 update 12......................................................................................................................21
                  1.3.10.11. Java 6 update 13......................................................................................................................21
                  1.3.10.12. Java 6 update 14......................................................................................................................21
                  1.3.10.13. Java 6 update 15......................................................................................................................22
                  1.3.10.14. Java 6 update 16......................................................................................................................22
             1.3.11. Les futures versions de Java             ................................................................................................................22
             1.3.12. Le résumé des différentes versions.....................................................................................................22
             1.3.13. Les extensions du JDK........................................................................................................................22
        1.4. Un rapide tour d'horizon des API et de quelques outils..................................................................................23
        1.5. Les différences entre Java et JavaScript..........................................................................................................24
        1.6. L'installation du JDK     .......................................................................................................................................25
             1.6.1. L'installation de la version 1.3 DU JDK de Sun sous Windows 9x......................................................25
             1.6.2. L'installation de la documentation de Java 1.3 sous Windows.............................................................27
             1.6.3. La configuration des variables système sous Windows 9x...................................................................28
             1.6.4. Les éléments du JDK 1.3 sous Windows..............................................................................................29
             1.6.5. L'installation de la version 1.4.2 du JDK de Sun sous Windows                                   ..........................................................29
             1.6.6. L'installation de la version 1.5 du JDK de Sun sous Windows                                  .............................................................30
             1.6.7. Installation JDK 1.4.2 sous Linux Mandrake 10..................................................................................31

2. Les notions et techniques de base en Java....................................................................................................................35
         2.1. Les concepts de base.......................................................................................................................................35
              2.1.1. La compilation et l'exécution................................................................................................................35
              2.1.2. Les packages.........................................................................................................................................38
              2.1.3. Le déploiement sous la forme d'un jar..................................................................................................40
              2.1.4. Le classpath...........................................................................................................................................41


Développons en Java
Table des matières
2. Les notions et techniques de base en Java
                  2.1.4.1. La définition du classpath pour exécuter une application                          ...........................................................43
                  2.1.4.2. La définition du classpath pour exécuter une application avec la variable CLASSPATH                                                 .........45
                  2.1.4.3. La définition du classpath pour exécuter une application utilisant une ou plusieurs
                            bibliothèques  .............................................................................................................................45
                  2.1.4.4. La définition du classpath pour exécuter une application packagée en jar.................................46
         2.2. L'exécution d'une applet..................................................................................................................................48

3. La syntaxe et les éléments de bases de Java.................................................................................................................49
         3.1. Les règles de base     ............................................................................................................................................49
         3.2. Les identificateurs...........................................................................................................................................49
         3.3. Les commentaires       ............................................................................................................................................50
         3.4. La déclaration et l'utilisation de variables.......................................................................................................50
              3.4.1. La déclaration de variables...................................................................................................................50
              3.4.2. Les types élémentaires..........................................................................................................................51
              3.4.3. Le format des types élémentaires..........................................................................................................52
              3.4.4. L'initialisation des variables..................................................................................................................53
              3.4.5. L'affectation..........................................................................................................................................53
              3.4.6. Les comparaisons..................................................................................................................................54
         3.5. Les opérations arithmétiques            ...........................................................................................................................54
              3.5.1. L'arithmétique entière...........................................................................................................................55
              3.5.2. L'arithmétique en virgule flottante........................................................................................................55
              3.5.3. L'incrémentation et la décrémentation..................................................................................................56
         3.6. La priorité des opérateurs................................................................................................................................57
         3.7. Les structures de contrôles..............................................................................................................................57
              3.7.1. Les boucles............................................................................................................................................57
              3.7.2. Les branchements conditionnels...........................................................................................................59
              3.7.3. Les débranchements..............................................................................................................................59
         3.8. Les tableaux  .....................................................................................................................................................59
              3.8.1. La déclaration des tableaux...................................................................................................................60
              3.8.2. L'initialisation explicite d'un tableau....................................................................................................60
              3.8.3. Le parcours d'un tableau.......................................................................................................................61
         3.9. Les conversions de types.................................................................................................................................61
              3.9.1. La conversion d'un entier int en chaîne de caractère String                               ..................................................................62
              3.9.2. La conversion d'une chaîne de caractères String en entier int..............................................................62
              3.9.3. La conversion d'un entier int en entier long..........................................................................................62
         3.10. La manipulation des chaînes de caractères...................................................................................................62
              3.10.1. Les caractères spéciaux dans les chaines............................................................................................63
              3.10.2. L'addition de chaînes de caractères.....................................................................................................63
              3.10.3. La comparaison de deux chaines........................................................................................................64
              3.10.4. La détermination de la longueur d'une chaine....................................................................................64
              3.10.5. La modification de la casse d'une chaine............................................................................................64

4. La programmation orientée objet.................................................................................................................................65
        4.1. Le concept de classe........................................................................................................................................65
             4.1.1. La syntaxe de déclaration d'une classe                    ..................................................................................................65
        4.2. Les objets.........................................................................................................................................................66
             4.2.1. La création d'un objet : instancier une classe........................................................................................66
             4.2.2. La durée de vie d'un objet.....................................................................................................................68
             4.2.3. La création d'objets identiques..............................................................................................................68
             4.2.4. Les références et la comparaison d'objets.............................................................................................68
             4.2.5. L'objet null............................................................................................................................................69
             4.2.6. Les variables de classes           .........................................................................................................................69
             4.2.7. La variable this......................................................................................................................................69
             4.2.8. L'opérateur instanceof...........................................................................................................................70
        4.3. Les modificateurs d'accès................................................................................................................................71
             4.3.1. Les mots clés qui gèrent la visibilité des entités...................................................................................71
             4.3.2. Le mot clé static....................................................................................................................................71
             4.3.3. Le mot clé final.....................................................................................................................................72


Développons en Java
Table des matières
4. La programmation orientée objet
             4.3.4. Le mot clé abstract................................................................................................................................73
             4.3.5. Le mot clé synchronized.......................................................................................................................73
             4.3.6. Le mot clé volatile        .................................................................................................................................73
             4.3.7. Le mot clé native...................................................................................................................................74
        4.4. Les propriétés ou attributs...............................................................................................................................74
             4.4.1. Les variables d'instances.......................................................................................................................74
             4.4.2. Les variables de classes           .........................................................................................................................74
             4.4.3. Les constantes.......................................................................................................................................74
        4.5. Les méthodes...................................................................................................................................................75
             4.5.1. La syntaxe de la déclaration..................................................................................................................75
             4.5.2. La transmission de paramètres..............................................................................................................76
             4.5.3. L'émission de messages........................................................................................................................77
             4.5.4. L'enchainement de références à des variables et à des méthodes.........................................................77
             4.5.5. La surcharge de méthodes.....................................................................................................................77
             4.5.6. Les constructeurs        ...................................................................................................................................78
             4.5.7. Le destructeur........................................................................................................................................79
             4.5.8. Les accesseurs.......................................................................................................................................79
        4.6. L'héritage.........................................................................................................................................................79
             4.6.1. Le principe de l'héritage........................................................................................................................79
             4.6.2. La mise en oeuvre de l'héritage.............................................................................................................80
             4.6.3. L'accès aux propriétés héritées               ..............................................................................................................80
             4.6.4. La redéfinition d'une méthode héritée                    ...................................................................................................80
             4.6.5. Le polymorphisme................................................................................................................................80
             4.6.6. Le transtypage induit par l'héritage facilite le polymorphisme.............................................................81
             4.6.7. Les interfaces et l'héritage multiple......................................................................................................81
             4.6.8. Des conseils sur l'héritage.....................................................................................................................83
        4.7. Les packages...................................................................................................................................................83
             4.7.1. La définition d'un package....................................................................................................................83
             4.7.2. L'utilisation d'un package......................................................................................................................83
             4.7.3. La collision de classes...........................................................................................................................84
             4.7.4. Les packages et l'environnement système                        .............................................................................................84
        4.8. Les classes internes.........................................................................................................................................84
             4.8.1. Les classes internes non statiques.........................................................................................................87
             4.8.2. Les classes internes locales...................................................................................................................91
             4.8.3. Les classes internes anonymes..............................................................................................................93
             4.8.4. Les classes internes statiques................................................................................................................94
        4.9. La gestion dynamique des objets....................................................................................................................95

5. Les packages de bases   .....................................................................................................................................................96
         5.1. Les packages selon la version du JDK............................................................................................................96
         5.2. Le package java.lang.....................................................................................................................................102
              5.2.1. La classe Object..................................................................................................................................102
                   5.2.1.1. La méthode getClass()..............................................................................................................103
                   5.2.1.2. La méthode toString()...............................................................................................................103
                   5.2.1.3. La méthode equals()             ..................................................................................................................103
                   5.2.1.4. La méthode finalize()................................................................................................................103
                   5.2.1.5. La méthode clone()...................................................................................................................104
              5.2.2. La classe String...................................................................................................................................104
              5.2.3. La classe StringBuffer.........................................................................................................................106
              5.2.4. Les wrappers.......................................................................................................................................107
              5.2.5. La classe System.................................................................................................................................108
                   5.2.5.1. L'utilisation des flux d'entrée/sortie standard                       ............................................................................108
                   5.2.5.2. Les variables d'environnement et les propriétés du système....................................................110
              5.2.6. Les classes Runtime et Process...........................................................................................................112
         5.3. La présentation rapide du package awt java                    ..................................................................................................115
         5.4. La présentation rapide du package java.io....................................................................................................115
         5.5. Le package java.util......................................................................................................................................115
                                       .
              5.5.1. La classe StringTokenizer...................................................................................................................115


Développons en Java
Table des matières
5. Les packages de bases
              5.5.2. La classe Random...............................................................................................................................116
              5.5.3. Les classes Date et Calendar...............................................................................................................116
              5.5.4. La classe SimpleDateFormat..............................................................................................................117
              5.5.5. La classe Vector..................................................................................................................................123
              5.5.6. La classe Hashtable.............................................................................................................................124
              5.5.7. L'interface Enumeration......................................................................................................................124
              5.5.8. La manipulation d'archives zip...........................................................................................................125
              5.5.9. Les expressions régulières..................................................................................................................128
                   5.5.9.1. Les motifs.................................................................................................................................129
                   5.5.9.2. La classe Pattern.......................................................................................................................130
                   5.5.9.3. La classe Matcher.....................................................................................................................131
              5.5.10. La classe Formatter...........................................................................................................................133
              5.5.11. La classe Scanner..............................................................................................................................134
         5.6. La présentation rapide du package java.net..................................................................................................135
         5.7. La présentation rapide du package java.applet.............................................................................................135
                                                                         .

6. Les fonctions mathématiques        .......................................................................................................................................136
         6.1. Les variables de classe..................................................................................................................................136
         6.2. Les fonctions trigonométriques.....................................................................................................................137
         6.3. Les fonctions de comparaisons.....................................................................................................................137
         6.4. Les arrondis...................................................................................................................................................137
              6.4.1. La méthode round(n)...........................................................................................................................137
              6.4.2. La méthode rint(double)           ......................................................................................................................138
              6.4.3. La méthode floor(double)...................................................................................................................138
              6.4.4. La méthode ceil(double).....................................................................................................................139
              6.4.5. La méthode abs(x)...............................................................................................................................139
         6.5. La méthode IEEEremainder(double, double)                       ................................................................................................139
         6.6. Les Exponentielles et puissances..................................................................................................................140
              6.6.1. La méthode pow(double, double).......................................................................................................140
              6.6.2. La méthode sqrt(double).....................................................................................................................140
              6.6.3. La méthode exp(double).....................................................................................................................140
              6.6.4. La méthode log(double)......................................................................................................................141
         6.7. La génération de nombres aléatoires.............................................................................................................141
              6.7.1. La méthode random()..........................................................................................................................141
         6.8. La classe BigDecimal....................................................................................................................................141

7. La gestion des exceptions.............................................................................................................................................148
         7.1. Les mots clés try, catch et finally..................................................................................................................149
         7.2. La classe Throwable......................................................................................................................................150
         7.3. Les classes Exception, RunTimeException et Error.....................................................................................151
         7.4. Les exceptions personnalisées       .......................................................................................................................151
         7.5. Les exceptions chaînées................................................................................................................................152
         7.6. L'utilisation des exceptions...........................................................................................................................153

8. Le multitâche .................................................................................................................................................................155
        8.1. L'interface Runnable.....................................................................................................................................155
        8.2. La classe Thread............................................................................................................................................156
        8.3. La création et l'exécution d'un thread............................................................................................................158
             8.3.1. La dérivation de la classe Thread........................................................................................................158
             8.3.2. L'implémentation de l'interface Runnable..........................................................................................159
             8.3.3. La modification de la priorité d'un thread...........................................................................................160
        8.4. La classe ThreadGroup              ..................................................................................................................................161
        8.5. Un thread en tâche de fond (démon).............................................................................................................161
        8.6. L'exclusion mutuelle.....................................................................................................................................162
             8.6.1. La sécurisation d'une méthode............................................................................................................162
             8.6.2. La sécurisation d'un bloc.....................................................................................................................162
             8.6.3. La sécurisation de variables de classes...............................................................................................163
             8.6.4. La synchronisation : les méthodes wait() et notify()                               ...........................................................................163


Développons en Java
Table des matières
9. JDK 1.5 (nom de code Tiger).......................................................................................................................................164
        9.1. Les nouveautés du langage Java version 1.5.................................................................................................164
        9.2. L'autoboxing / unboxing        ................................................................................................................................164
        9.3. Les importations statiques.............................................................................................................................165
        9.4. Les annotations ou méta données (Meta Data).............................................................................................166
        9.5. Les arguments variables (varargs)             .................................................................................................................166
        9.6. Les generics...................................................................................................................................................168
        9.7. Les boucles pour le parcours des collections................................................................................................171
        9.8. Les énumérations (type enum)......................................................................................................................173

10. Les annotations...........................................................................................................................................................177
         10.1. La mise en oeuvre des annotations                ..............................................................................................................178
         10.2. L'utilisation des annotations........................................................................................................................179
             10.2.1. La documentation..............................................................................................................................179
             10.2.2. L'utilisation par le compilateur.........................................................................................................180
             10.2.3. La génération de code.......................................................................................................................180
             10.2.4. La génération de fichiers...................................................................................................................180
             10.2.5. Les API qui utilisent les annotations                   .................................................................................................180
         10.3. Les annotations standards          ............................................................................................................................180
             10.3.1. L'annotation @Deprecated................................................................................................................180
             10.3.2. L'annotation @Override....................................................................................................................181
             10.3.3. L'annotation @SuppressWarning                      ......................................................................................................183
         10.4. Les annotations communes (Common Annotations)..................................................................................184
             10.4.1. L'annotation @Generated                ..................................................................................................................184
             10.4.2. Les annotations @Resource et @Resources.....................................................................................185
             10.4.3. Les annotations @PostConstruct et @PreDestroy............................................................................186
         10.5. Les annotations personnalisées...................................................................................................................186
             10.5.1. La définition d'une annotation                ...........................................................................................................186
             10.5.2. Les annotations pour les annotations................................................................................................188
                  10.5.2.1. L'annotation @Target.............................................................................................................188
                  10.5.2.2. L'annotation @Retention........................................................................................................189
                  10.5.2.3. L'annotation @Documented...................................................................................................189
                  10.5.2.4. L'annotation @Inherited.........................................................................................................190
         10.6. L'exploitation des annotations.....................................................................................................................190
             10.6.1. L'exploitation des annotations dans un Doclet .................................................................................190
                                                                                            .
             10.6.2. L'exploitation des annotations avec l'outil Apt.................................................................................191
             10.6.3. L'exploitation des annotations par introspection                          ...............................................................................197
             10.6.4. L'exploitation des annotations par le compilateur Java....................................................................199
         10.7. L'API Pluggable Annotation Processing.....................................................................................................199
             10.7.1. Les processeurs d'annotations...........................................................................................................200
             10.7.2. L'utilisation des processeurs par le compilateur...............................................................................202
             10.7.3. La création de nouveaux fichiers......................................................................................................202
         10.8. Les ressources relatives aux annotations                  .....................................................................................................204

Partie 2 : Développement des interfaces graphiques.....................................................................................................205

11. Le graphisme...............................................................................................................................................................206
         11.1. Les opérations sur le contexte graphique....................................................................................................206
             11.1.1. Le tracé de formes géométriques......................................................................................................206
             11.1.2. Le tracé de texte................................................................................................................................207
             11.1.3. L'utilisation des fontes......................................................................................................................207
             11.1.4. La gestion de la couleur....................................................................................................................208
             11.1.5. Le chevauchement de figures graphiques.........................................................................................208
             11.1.6. L'effacement d'une aire.....................................................................................................................208
             11.1.7. La copier une aire rectangulaire........................................................................................................208

12. Les éléments d'interfaces graphiques de l'AWT                ......................................................................................................209
         12.1. Les composants graphiques      .........................................................................................................................210
             12.1.1. Les étiquettes
                                  .....................................................................................................................................210


Développons en Java
Table des matières
12. Les éléments d'interfaces graphiques de l'AWT
             12.1.2. Les boutons.......................................................................................................................................211
             12.1.3. Les panneaux        .....................................................................................................................................211
             12.1.4. Les listes déroulantes (combobox)....................................................................................................212
             12.1.5. La classe TextComponent.................................................................................................................213
             12.1.6. Les champs de texte..........................................................................................................................213
             12.1.7. Les zones de texte multilignes..........................................................................................................214
             12.1.8. Les listes............................................................................................................................................216
             12.1.9. Les cases à cocher.............................................................................................................................219
             12.1.10. Les boutons radio............................................................................................................................220
             12.1.11. Les barres de défilement.................................................................................................................221
             12.1.12. La classe Canvas.............................................................................................................................222
         12.2. La classe Component..................................................................................................................................223
         12.3. Les conteneurs.............................................................................................................................................224
             12.3.1. Le conteneur Panel............................................................................................................................225
             12.3.2. Le conteneur Window.......................................................................................................................225
             12.3.3. Le conteneur Frame..........................................................................................................................225
             12.3.4. Le conteneur Dialog..........................................................................................................................227
         12.4. Les menus  ....................................................................................................................................................228
             12.4.1. Les méthodes de la classe MenuBar.................................................................................................230
             12.4.2. Les méthodes de la classe Menu.......................................................................................................230
             12.4.3. Les méthodes de la classe MenuItem................................................................................................230
             12.4.4. Les méthodes de la classe CheckboxMenuItem...............................................................................231
         12.5. La classe java.awt.Desktop.........................................................................................................................231

13. La création d'interfaces graphiques avec AWT......................................................................................................233
         13.1. Le dimensionnement des composants.........................................................................................................233
         13.2. Le positionnement des composants.............................................................................................................234
             13.2.1. La mise en page par flot (FlowLayout).............................................................................................235
             13.2.2. La mise en page bordure (BorderLayout).........................................................................................236
             13.2.3. La mise en page de type carte (CardLayout)....................................................................................237
             13.2.4. La mise en page GridLayout.............................................................................................................238
             13.2.5. La mise en page GridBagLayout......................................................................................................240
         13.3. La création de nouveaux composants à partir de Panel..............................................................................241
         13.4. L'activation ou la désactivation des composants.........................................................................................242

14. L'interception des actions de l'utilisateur         .................................................................................................................243
         14.1. L'interception des actions de l'utilisateur avec Java version 1.0.................................................................243
         14.2. L'interception des actions de l'utilisateur avec Java version 1.1.................................................................243
             14.2.1. L'interface ItemListener....................................................................................................................245
             14.2.2. L'interface TextListener....................................................................................................................246
             14.2.3. L'interface MouseMotionListener.....................................................................................................247
             14.2.4. L'interface MouseListener................................................................................................................247
                                                        .
             14.2.5. L'interface WindowListener            ..............................................................................................................248
             14.2.6. Les différentes implémentations des Listeners.................................................................................249
                   14.2.6.1. Une classe implémentant elle même le listener......................................................................249
                   14.2.6.2. Une classe indépendante implémentant le listener.................................................................250
                   14.2.6.3. Une classe interne...................................................................................................................251
                   14.2.6.4. Une classe interne anonyme              ....................................................................................................251
             14.2.7. Résumé..............................................................................................................................................252

15. Le développement d'interfaces graphiques avec SWING                      .......................................................................................253
        15.1. La présentation de Swing............................................................................................................................253
        15.2. Les packages Swing....................................................................................................................................254
        15.3. Un exemple de fenêtre autonome................................................................................................................254
        15.4. Les composants Swing................................................................................................................................255
             15.4.1. La classe JFrame...............................................................................................................................256
                 15.4.1.1. Le comportement par défaut à la fermeture............................................................................258
                 15.4.1.2. La personnalisation de l'icône.................................................................................................259


Développons en Java
Table des matières
15. Le développement d'interfaces graphiques avec SWING
                 15.4.1.3. Centrer une JFrame à l'écran                   ...................................................................................................259
                 15.4.1.4. Les événements associées à un JFrame..................................................................................260
             15.4.2. Les étiquettes : la classe JLabel........................................................................................................260
             15.4.3. Les panneaux : la classe JPanel........................................................................................................263
                                                                    .
        15.5. Les boutons.................................................................................................................................................263
             15.5.1. La classe AbstractButton..................................................................................................................263
             15.5.2. La classe JButton..............................................................................................................................265
             15.5.3. La classe JToggleButton...................................................................................................................266
             15.5.4. La classe ButtonGroup......................................................................................................................267
             15.5.5. Les cases à cocher : la classe JCheckBox.........................................................................................267
             15.5.6. Les boutons radio : la classe JRadioButton......................................................................................268
        15.6. Les composants de saisie de texte...............................................................................................................268
             15.6.1. La classe JTextComponent...............................................................................................................269
             15.6.2. La classe JTextField..........................................................................................................................270
             15.6.3. La classe JPasswordField..................................................................................................................270
             15.6.4. La classe JFormattedTextField.........................................................................................................272
             15.6.5. La classe JEditorPane           ........................................................................................................................272
             15.6.6. La classe JTextPane..........................................................................................................................273
             15.6.7. La classe JTextArea..........................................................................................................................273
        15.7. Les onglets ...................................................................................................................................................275
        15.8. Le composant JTree....................................................................................................................................276
             15.8.1. La création d'une instance de la classe JTree....................................................................................276
             15.8.2. La gestion des données de l'arbre                 ......................................................................................................279
                 15.8.2.1. L'interface TreeNode..............................................................................................................280
                 15.8.2.2. L'interface MutableTreeNode.................................................................................................280
                 15.8.2.3. La classe DefaultMutableTreeNode.......................................................................................281
             15.8.3. La modification du contenu de l'arbre                    ...............................................................................................282
                 15.8.3.1. Les modifications des noeuds fils...........................................................................................282
                 15.8.3.2. Les événements émis par le modèle                         ........................................................................................283
                 15.8.3.3. L'édition d'un noeud................................................................................................................284
                 15.8.3.4. Les éditeurs personnalisés                 .......................................................................................................284
                 15.8.3.5. 3.5 La définition des noeuds éditables....................................................................................285
             15.8.4. La mise en oeuvre d'actions sur l'arbre.............................................................................................286
                 15.8.4.1. Etendre ou refermer un noeud                     .................................................................................................286
                 15.8.4.2. La détermination du noeud sélectionné..................................................................................287
                 15.8.4.3. Le parcours des noeuds de l'arbre...........................................................................................287
             15.8.5. La gestion des événements................................................................................................................288
                 15.8.5.1. La classe TreePath..................................................................................................................289
                 15.8.5.2. La gestion de la sélection d'un noeud.....................................................................................290
                 15.8.5.3. Les événements lies à la sélection de noeuds.........................................................................291
                 15.8.5.4. Les événements lorsqu'un noeud est étendu ou refermé.........................................................293
                 15.8.5.5. Le contrôle des actions pour étendre ou refermer un noeud...................................................294
             15.8.6. La personnalisation du rendu............................................................................................................294
                 15.8.6.1. Personnaliser le rendu des noeuds..........................................................................................295
                 15.8.6.2. Les bulles d'aides (Tooltips)...................................................................................................298
        15.9. Les menus  ....................................................................................................................................................298
             15.9.1. La classe JMenuBar..........................................................................................................................301
             15.9.2. La classe JMenuItem.........................................................................................................................303
             15.9.3. La classe JPopupMenu......................................................................................................................303
             15.9.4. La classe JMenu................................................................................................................................305
             15.9.5. La classe JCheckBoxMenuItem........................................................................................................306
             15.9.6. La classe JRadioButtonMenuItem....................................................................................................306
             15.9.7. La classe JSeparator..........................................................................................................................306
        15.10. L'affichage d'une image dans une application...........................................................................................307

16. Le développement d'interfaces graphiques avec SWT                  ............................................................................................312
        16.1. La présentation de SWT..............................................................................................................................312
        16.2. Un exemple très simple...............................................................................................................................314


Développons en Java
Table des matières
16. Le développement d'interfaces graphiques avec SWT
        16.3. La classe SWT   .............................................................................................................................................314
        16.4. L'objet Display............................................................................................................................................315
        16.5. L'objet Shell................................................................................................................................................315
                           .
        16.6. Les composants...........................................................................................................................................317
             16.6.1. La classe Control...............................................................................................................................317
             16.6.2. Les contrôles de base........................................................................................................................318
                 16.6.2.1. La classe Button......................................................................................................................318
                 16.6.2.2. La classe Label.......................................................................................................................318
                                                   .
                 16.6.2.3. La classe Text.........................................................................................................................319
             16.6.3. Les contrôles de type liste.................................................................................................................320
                 16.6.3.1. La classe Combo.....................................................................................................................320
                 16.6.3.2. La classe List..........................................................................................................................321
                                                .
             16.6.4. Les contrôles pour les menus............................................................................................................321
                 16.6.4.1. La classe Menu.......................................................................................................................321
                 16.6.4.2. La classe MenuItem................................................................................................................322
             16.6.5. Les contrôles de sélection ou d'affichage d'une valeur.....................................................................323
                 16.6.5.1. La classe ProgressBar.............................................................................................................323
                 16.6.5.2. La classe Scale........................................................................................................................324
                 16.6.5.3. La classe Slider.......................................................................................................................324
             16.6.6. Les contrôles de type « onglets »......................................................................................................325
                 16.6.6.1. La classe TabFolder................................................................................................................325
                 16.6.6.2. La classe TabItem...................................................................................................................326
             16.6.7. Les contrôles de type « tableau »......................................................................................................326
                 16.6.7.1. La classe Table         ........................................................................................................................326
                 16.6.7.2. La classe TableColumn...........................................................................................................328
                 16.6.7.3. La classe TableItem................................................................................................................328
             16.6.8. Les contrôles de type « arbre ».........................................................................................................329
                 16.6.8.1. La classe Tree.........................................................................................................................329
                 16.6.8.2. La classe TreeItem..................................................................................................................330
             16.6.9. La classe ScrollBar       ............................................................................................................................330
             16.6.10. Les contrôles pour le graphisme.....................................................................................................330
                 16.6.10.1. La classe Canvas...................................................................................................................330
                 16.6.10.2. La classe GC.........................................................................................................................331
                 16.6.10.3. La classe Color           ......................................................................................................................332
                 16.6.10.4. La classe Font.......................................................................................................................332
                 16.6.10.5. La classe Image.....................................................................................................................333
        16.7. Les conteneurs.............................................................................................................................................334
             16.7.1. Les conteneurs de base......................................................................................................................334
                 16.7.1.1. La classe Composite...............................................................................................................334
                 16.7.1.2. La classe Group           .......................................................................................................................336
             16.7.2. Les contrôles de type « barre d'outils ».............................................................................................336
                 16.7.2.1. La classe ToolBar...................................................................................................................336
                 16.7.2.2. La classe ToolItem..................................................................................................................337
                 16.7.2.3. Les classes CoolBar et Cooltem.............................................................................................339
        16.8. La gestion des erreurs     ..................................................................................................................................340
        16.9. Le positionnement des contrôles.................................................................................................................340
             16.9.1. Le positionnement absolu.................................................................................................................341
             16.9.2. Le positionnement relatif avec les LayoutManager..........................................................................341
                 16.9.2.1. FillLayout...............................................................................................................................341
                                           .
                 16.9.2.2. RowLayout.............................................................................................................................342
                                             .
                 16.9.2.3. GridLayout..............................................................................................................................343
                 16.9.2.4. FormLayout............................................................................................................................346
        16.10. La gestion des événements........................................................................................................................346
             16.10.1. L'interface KeyListener...................................................................................................................347
             16.10.2. L'interface MouseListener..............................................................................................................349
                                                             .
             16.10.3. L'interface MouseMoveListener.....................................................................................................350
             16.10.4. L'interface MouseTrackListener.....................................................................................................351
             16.10.5. L'interface ModifyListener.............................................................................................................351


Développons en Java
Table des matières
16. Le développement d'interfaces graphiques avec SWT
             16.10.6. L'interface VerifyText()..................................................................................................................352
             16.10.7. L'interface FocusListener................................................................................................................353
             16.10.8. L'interface TraverseListener...........................................................................................................354
             16.10.9. L'interface PaintListener.................................................................................................................355
        16.11. Les boîtes de dialogue...............................................................................................................................356
             16.11.1. Les boîtes de dialogues prédéfinies................................................................................................356
                 16.11.1.1. La classe MessageBox..........................................................................................................356
                 16.11.1.2. La classe ColorDialog...........................................................................................................357
                 16.11.1.3. La classe FontDialog       .............................................................................................................358
                 16.11.1.4. La classe FileDialog      ..............................................................................................................359
                 16.11.1.5. La classe DirectoryDialog          .....................................................................................................359
                 16.11.1.6. La classe PrintDialog............................................................................................................360
             16.11.2. Les boites de dialogues personnalisées...........................................................................................361

17. JFace............................................................................................................................................................................363
        17.1. La structure générale d'une application.......................................................................................................364
        17.2. Les boites de dialogues...............................................................................................................................365
               17.2.1. L'affichage des messages d'erreur.....................................................................................................365
               17.2.2. L'affichage des messages d'information à l'utilisateur......................................................................366
               17.2.3. La saisie d'une valeur par l'utilisateur...............................................................................................368
               17.2.4. La boîte de dialogue pour afficher la progression d'un traitement ...................................................369
                                                                                                                                 .

Partie 3 : Les API avancées
                          ..............................................................................................................................................373

18. Les collections..............................................................................................................................................................375
         18.1. Présentation du framework collection.........................................................................................................375
         18.2. Les interfaces des collections......................................................................................................................376
             18.2.1. L'interface Collection........................................................................................................................377
             18.2.2. L'interface Iterator.............................................................................................................................378
         18.3. Les listes......................................................................................................................................................379
             18.3.1. L'interface List..................................................................................................................................379
             18.3.2. Les listes chaînées : la classe LinkedList..........................................................................................379
             18.3.3. L'interface ListIterator......................................................................................................................381
                                                          .
             18.3.4. Les tableaux redimensionnables : la classe ArrayList......................................................................381
         18.4. Les ensembles.............................................................................................................................................382
             18.4.1. L'interface Set...................................................................................................................................382
             18.4.2. L'interface SortedSet.........................................................................................................................382
             18.4.3. La classe HashSet.............................................................................................................................383
                                                   .
             18.4.4. La classe TreeSet..............................................................................................................................383
         18.5. Les collections gérées sous la forme clé/valeur..........................................................................................384
             18.5.1. L'interface Map.................................................................................................................................384
             18.5.2. L'interface SortedMap.......................................................................................................................385
             18.5.3. La classe Hashtable...........................................................................................................................385
             18.5.4. La classe TreeMap............................................................................................................................386
             18.5.5. La classe HashMap...........................................................................................................................386
         18.6. Le tri des collections...................................................................................................................................387
             18.6.1. L'interface Comparable.....................................................................................................................387
             18.6.2. L'interface Comparator.....................................................................................................................387
         18.7. Les algorithmes...........................................................................................................................................387
         18.8. Les exceptions du framework.....................................................................................................................389

19. Les flux.........................................................................................................................................................................390
         19.1. La présentation des flux..............................................................................................................................390
         19.2. Les classes de gestion des flux....................................................................................................................390
         19.3. Les flux de caractères..................................................................................................................................392
               19.3.1. La classe Reader              ................................................................................................................................393
               19.3.2. La classe Writer................................................................................................................................394
               19.3.3. Les flux de caractères avec un fichier...............................................................................................394


Développons en Java
Table des matières
19. Les flux
                      19.3.3.1. Les flux de caractères en lecture sur un fichier......................................................................394
                                                                                                         .
                      19.3.3.2. Les flux de caractères en écriture sur un fichier.....................................................................395
                 19.3.4. Les flux de caractères tamponnés avec un fichier............................................................................395
                                                                                                    .
                      19.3.4.1. Les flux de caractères tamponnés en lecture avec un fichier..................................................395
                      19.3.4.2. Les flux de caractères tamponnés en écriture avec un fichier................................................396
                      19.3.4.3. La classe PrintWriter..............................................................................................................397
                                                                 .
             19.4. Les flux d'octets ...........................................................................................................................................399
                 19.4.1. Les flux d'octets avec un fichier. ......................................................................................................399
                                                                         .
                      19.4.1.1. Les flux d'octets en lecture sur un fichier...............................................................................399
                      19.4.1.2. Les flux d'octets en écriture sur un fichier..............................................................................400
                 19.4.2. Les flux d'octets tamponnés avec un fichier.....................................................................................401
             19.5. La classe File...............................................................................................................................................402
             19.6. Les fichiers à accès direct...........................................................................................................................404
                                                    .
             19.7. La classe java.io.Console............................................................................................................................406

20. La sérialisation............................................................................................................................................................407
         20.1. Les classes et les interfaces de la sérialisation............................................................................................407
              20.1.1. L'interface Serializable            ......................................................................................................................407
              20.1.2. La classe ObjectOuputStream...........................................................................................................408
              20.1.3. La classe ObjectInputStream............................................................................................................409
         20.2. Le mot clé transient.....................................................................................................................................410
         20.3. La sérialisation personnalisée             ......................................................................................................................411
              20.3.1. L'interface Externalizable.................................................................................................................411

21. L'interaction avec le réseau.......................................................................................................................................412
         21.1. L'introduction aux concepts liés au réseau..................................................................................................412
         21.2. Les adresses internet...................................................................................................................................413
                                    .
             21.2.1. La classe InetAddress     ........................................................................................................................413
         21.3. L'accès aux ressources avec une URL            .........................................................................................................414
             21.3.1. La classe URL...................................................................................................................................414
             21.3.2. La classe URLConnection................................................................................................................415
             21.3.3. La classe URLEncoder        ......................................................................................................................416
             21.3.4. La classe HttpURLConnection.........................................................................................................417
         21.4. L'utilisation du protocole TCP....................................................................................................................417
             21.4.1. La classe SocketServer      ......................................................................................................................418
             21.4.2. La classe Socket................................................................................................................................420
         21.5. L'utilisation du protocole UDP      ....................................................................................................................421
             21.5.1. La classe DatagramSocket................................................................................................................421
             21.5.2. La classe DatagramPacket................................................................................................................422
             21.5.3. Un exemple de serveur et de client...................................................................................................422
         21.6. Les exceptions liées au réseau     .....................................................................................................................424
         21.7. Les interfaces de connexions au réseau           .......................................................................................................424

22. La gestion dynamique des objets et l'introspection.................................................................................................426
        22.1. La classe Class............................................................................................................................................426
             22.1.1. L'obtention d'un objet à partir de la classe Class..............................................................................427
                 22.1.1.1. La détermination de la classe d'un objet.................................................................................427
                 22.1.1.2. L'obtention d'un objet Class à partir d'un nom de classe........................................................427
                 22.1.1.3. Une troisième façon d'obtenir un objet Class.........................................................................428
             22.1.2. Les méthodes de la classe Class........................................................................................................428
        22.2. La recherche des informations sur une classe.............................................................................................429
             22.2.1. La recherche de la classe mère d'une classe                   ......................................................................................429
             22.2.2. La recherche des modificateurs d'une classe                    .....................................................................................429
             22.2.3. La recherche des interfaces implémentées par une classe................................................................430
             22.2.4. La recherche des champs publics......................................................................................................430
             22.2.5. La recherche des paramètres d'une méthode ou d'un constructeur...................................................431
             22.2.6. La recherche des constructeurs de la classe......................................................................................432
             22.2.7. La recherche des méthodes publiques...............................................................................................433


Développons en Java
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30
Dej 1 30

More Related Content

What's hot

Performances d’un système virtualisé avec v mware esxi
Performances d’un système virtualisé avec v mware esxiPerformances d’un système virtualisé avec v mware esxi
Performances d’un système virtualisé avec v mware esxi
privateperso
 
Apache Web Server Index
Apache Web Server IndexApache Web Server Index
Apache Web Server Index
webhostingguy
 
Flash as2 components_help
Flash as2 components_helpFlash as2 components_help
Flash as2 components_help
Faiz Morchid
 
Les bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sqlLes bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sql
Zineb Meryem
 

What's hot (20)

Oracle 11g exploitation
Oracle 11g exploitationOracle 11g exploitation
Oracle 11g exploitation
 
Performances d’un système virtualisé avec v mware esxi
Performances d’un système virtualisé avec v mware esxiPerformances d’un système virtualisé avec v mware esxi
Performances d’un système virtualisé avec v mware esxi
 
The Ring programming language version 1.4 book - Part 1 of 30
The Ring programming language version 1.4 book - Part 1 of 30The Ring programming language version 1.4 book - Part 1 of 30
The Ring programming language version 1.4 book - Part 1 of 30
 
875 3157-01
875 3157-01875 3157-01
875 3157-01
 
Administration Base de données Oracle
Administration Base de données OracleAdministration Base de données Oracle
Administration Base de données Oracle
 
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
Christophe blaess shells-linux_et_unix_par_la_pratique_-eyrolles_(�ditions...
 
The Ring programming language version 1.4.1 book - Part 1 of 31
The Ring programming language version 1.4.1 book - Part 1 of 31The Ring programming language version 1.4.1 book - Part 1 of 31
The Ring programming language version 1.4.1 book - Part 1 of 31
 
Apache Web Server Index
Apache Web Server IndexApache Web Server Index
Apache Web Server Index
 
Support formation vidéo : Outlook 2016 - Maîtriser les bases
Support formation vidéo : Outlook 2016 - Maîtriser les basesSupport formation vidéo : Outlook 2016 - Maîtriser les bases
Support formation vidéo : Outlook 2016 - Maîtriser les bases
 
Jmetertest
JmetertestJmetertest
Jmetertest
 
Guide nvivo 9
Guide nvivo 9Guide nvivo 9
Guide nvivo 9
 
Flash as2 components_help
Flash as2 components_helpFlash as2 components_help
Flash as2 components_help
 
Support formation vidéo : Maîtriser JavaScript
Support formation vidéo : Maîtriser JavaScriptSupport formation vidéo : Maîtriser JavaScript
Support formation vidéo : Maîtriser JavaScript
 
Les bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sqlLes bases fondamentales du langage transact sql
Les bases fondamentales du langage transact sql
 
Complet
CompletComplet
Complet
 
D g zach.1231
D g zach.1231D g zach.1231
D g zach.1231
 
Object detection and recognition in digital images
Object detection and recognition in digital imagesObject detection and recognition in digital images
Object detection and recognition in digital images
 
Manuel ns1.3
Manuel ns1.3Manuel ns1.3
Manuel ns1.3
 
464494 administrez-vos-bases-de-donnees-avec-mysql
464494 administrez-vos-bases-de-donnees-avec-mysql464494 administrez-vos-bases-de-donnees-avec-mysql
464494 administrez-vos-bases-de-donnees-avec-mysql
 
Concevez votre-site-web-avec-php-et-mysql
Concevez votre-site-web-avec-php-et-mysqlConcevez votre-site-web-avec-php-et-mysql
Concevez votre-site-web-avec-php-et-mysql
 

Viewers also liked (20)

290 09 suralimentation
290 09 suralimentation290 09 suralimentation
290 09 suralimentation
 
Les pronoms directes
Les pronoms directesLes pronoms directes
Les pronoms directes
 
Carnaval
CarnavalCarnaval
Carnaval
 
LA BIBLIOTECA
LA BIBLIOTECALA BIBLIOTECA
LA BIBLIOTECA
 
Simplemente Venus 7ma parte by Rubido 9
Simplemente Venus 7ma parte by Rubido 9Simplemente Venus 7ma parte by Rubido 9
Simplemente Venus 7ma parte by Rubido 9
 
Culto 21 De Junio
Culto 21 De JunioCulto 21 De Junio
Culto 21 De Junio
 
Matematicas2
Matematicas2Matematicas2
Matematicas2
 
Comunicación Política
Comunicación PolíticaComunicación Política
Comunicación Política
 
10 Epistemologia Y
10 Epistemologia Y10 Epistemologia Y
10 Epistemologia Y
 
Consumismo telefonico 12
Consumismo telefonico 12Consumismo telefonico 12
Consumismo telefonico 12
 
Vella Quaresma '08-'09
Vella Quaresma '08-'09Vella Quaresma '08-'09
Vella Quaresma '08-'09
 
Julio Act. Integradora 18 Junio
Julio Act. Integradora 18 JunioJulio Act. Integradora 18 Junio
Julio Act. Integradora 18 Junio
 
UGIF 09 2013 Fy13 q3, corporate presentation the inflection point in the ap...
UGIF 09 2013 Fy13 q3, corporate presentation   the inflection point in the ap...UGIF 09 2013 Fy13 q3, corporate presentation   the inflection point in the ap...
UGIF 09 2013 Fy13 q3, corporate presentation the inflection point in the ap...
 
My sql
My sqlMy sql
My sql
 
Swedish Exchange
Swedish ExchangeSwedish Exchange
Swedish Exchange
 
El Tema Que Nos Interesa A Todos4924
El Tema Que Nos Interesa A Todos4924El Tema Que Nos Interesa A Todos4924
El Tema Que Nos Interesa A Todos4924
 
Les voyages d'affaires au Luxembourg
Les voyages d'affaires au Luxembourg Les voyages d'affaires au Luxembourg
Les voyages d'affaires au Luxembourg
 
Resumenejeiii 1226801862580739 8
Resumenejeiii 1226801862580739 8Resumenejeiii 1226801862580739 8
Resumenejeiii 1226801862580739 8
 
Logement 19 mars 2015
Logement 19 mars 2015Logement 19 mars 2015
Logement 19 mars 2015
 
Reglamento De La Ley Carrera Docente
Reglamento De La Ley Carrera DocenteReglamento De La Ley Carrera Docente
Reglamento De La Ley Carrera Docente
 

Similar to Dej 1 30

119239 programmation-en-java-api
119239 programmation-en-java-api119239 programmation-en-java-api
119239 programmation-en-java-api
Wiem Ben Harrath
 
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
safwenbenfredj
 
96858965apprenez-a-programmer-en-c.pdf
96858965apprenez-a-programmer-en-c.pdf96858965apprenez-a-programmer-en-c.pdf
96858965apprenez-a-programmer-en-c.pdf
Achrafarc
 
Application du modèle de prévision météorologique WRF au Vietnam
Application du modèle de prévision météorologique WRF au VietnamApplication du modèle de prévision météorologique WRF au Vietnam
Application du modèle de prévision météorologique WRF au Vietnam
Viet-Trung TRAN
 

Similar to Dej 1 30 (20)

Programmation en-java-api
Programmation en-java-apiProgrammation en-java-api
Programmation en-java-api
 
The Ring programming language version 1.7 book - Part 1 of 196
The Ring programming language version 1.7 book - Part 1 of 196The Ring programming language version 1.7 book - Part 1 of 196
The Ring programming language version 1.7 book - Part 1 of 196
 
Les applications-web-avec-javafx
Les applications-web-avec-javafxLes applications-web-avec-javafx
Les applications-web-avec-javafx
 
The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210The Ring programming language version 1.9 book - Part 1 of 210
The Ring programming language version 1.9 book - Part 1 of 210
 
The Ring programming language version 1.8 book - Part 1 of 202
The Ring programming language version 1.8 book - Part 1 of 202The Ring programming language version 1.8 book - Part 1 of 202
The Ring programming language version 1.8 book - Part 1 of 202
 
119239 programmation-en-java-api
119239 programmation-en-java-api119239 programmation-en-java-api
119239 programmation-en-java-api
 
Deviens un Ninja avec Angular2
Deviens un Ninja avec Angular2Deviens un Ninja avec Angular2
Deviens un Ninja avec Angular2
 
initiation-au-langage-c-et-exercices-corriges
initiation-au-langage-c-et-exercices-corrigesinitiation-au-langage-c-et-exercices-corriges
initiation-au-langage-c-et-exercices-corriges
 
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
Rapport Projet De Fin D'étude de Conception et développement d’une applicatio...
 
Manuel d'accessibilité du web (extrait)
Manuel d'accessibilité du web (extrait)Manuel d'accessibilité du web (extrait)
Manuel d'accessibilité du web (extrait)
 
Poly
PolyPoly
Poly
 
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
Rapport de projet_de_fin_d__tudes__pfe__safwen (8)
 
The Ring programming language version 1.6 book - Part 1 of 189
The Ring programming language version 1.6 book - Part 1 of 189The Ring programming language version 1.6 book - Part 1 of 189
The Ring programming language version 1.6 book - Part 1 of 189
 
Livret java
Livret javaLivret java
Livret java
 
cours_python.pdf
cours_python.pdfcours_python.pdf
cours_python.pdf
 
Base-de-données.pdf
Base-de-données.pdfBase-de-données.pdf
Base-de-données.pdf
 
The Ring programming language version 1.5.3 book - Part 1 of 184
The Ring programming language version 1.5.3 book - Part 1 of 184The Ring programming language version 1.5.3 book - Part 1 of 184
The Ring programming language version 1.5.3 book - Part 1 of 184
 
The Ring programming language version 1.5.4 book - Part 1 of 185
The Ring programming language version 1.5.4 book - Part 1 of 185The Ring programming language version 1.5.4 book - Part 1 of 185
The Ring programming language version 1.5.4 book - Part 1 of 185
 
96858965apprenez-a-programmer-en-c.pdf
96858965apprenez-a-programmer-en-c.pdf96858965apprenez-a-programmer-en-c.pdf
96858965apprenez-a-programmer-en-c.pdf
 
Application du modèle de prévision météorologique WRF au Vietnam
Application du modèle de prévision météorologique WRF au VietnamApplication du modèle de prévision météorologique WRF au Vietnam
Application du modèle de prévision météorologique WRF au Vietnam
 

Dej 1 30

  • 1. Développons en Java Jean Michel DOUDOUX
  • 2. Table des matières Développons en Java.............................................................................................................................................................1 Préambule..............................................................................................................................................................................2 A propos de ce document.........................................................................................................................................2 Remerciements.........................................................................................................................................................4 Notes de licence.......................................................................................................................................................4 Marques déposées....................................................................................................................................................4 Historique des versions............................................................................................................................................5 Partie 1 : les bases du langage Java....................................................................................................................................7 1. Présentation de Java.........................................................................................................................................................8 1.1. Les caractéristiques...........................................................................................................................................8 1.2. Un bref historique de Java .................................................................................................................................9 1.3. Les différentes éditions et versions de Java....................................................................................................10 1.3.1. Les évolutions des plates-formes Java..................................................................................................11 1.3.2. Les différentes versions de Java ............................................................................................................11 1.3.3. Java 1.0..................................................................................................................................................12 1.3.4. Java 1.1..................................................................................................................................................12 1.3.5. Java 1.2 (nom de code Playground)......................................................................................................13 1.3.6. J2SE 1.3 (nom de code Kestrel)............................................................................................................13 1.3.7. J2SE 1.4 (nom de code Merlin)............................................................................................................13 1.3.8. J2SE 5.0 (nom de code Tiger)...............................................................................................................14 1.3.9. Java SE 6 (nom de code Mustang)........................................................................................................14 1.3.10. Java 6 update.......................................................................................................................................17 1.3.10.1. Java 6 update 1..........................................................................................................................18 1.3.10.2. Java 6 update 2..........................................................................................................................18 1.3.10.3. Java 6 update 3..........................................................................................................................18 1.3.10.4. Java 6 update 4..........................................................................................................................18 1.3.10.5. Java 6 update 5..........................................................................................................................18 1.3.10.6. Java 6 update 6..........................................................................................................................20 1.3.10.7. Java 6 update 7..........................................................................................................................20 1.3.10.8. Java 6 update 10........................................................................................................................21 1.3.10.9. Java 6 update 11........................................................................................................................21 1.3.10.10. Java 6 update 12......................................................................................................................21 1.3.10.11. Java 6 update 13......................................................................................................................21 1.3.10.12. Java 6 update 14......................................................................................................................21 1.3.10.13. Java 6 update 15......................................................................................................................22 1.3.10.14. Java 6 update 16......................................................................................................................22 1.3.11. Les futures versions de Java ................................................................................................................22 1.3.12. Le résumé des différentes versions.....................................................................................................22 1.3.13. Les extensions du JDK........................................................................................................................22 1.4. Un rapide tour d'horizon des API et de quelques outils..................................................................................23 1.5. Les différences entre Java et JavaScript..........................................................................................................24 1.6. L'installation du JDK .......................................................................................................................................25 1.6.1. L'installation de la version 1.3 DU JDK de Sun sous Windows 9x......................................................25 1.6.2. L'installation de la documentation de Java 1.3 sous Windows.............................................................27 1.6.3. La configuration des variables système sous Windows 9x...................................................................28 1.6.4. Les éléments du JDK 1.3 sous Windows..............................................................................................29 1.6.5. L'installation de la version 1.4.2 du JDK de Sun sous Windows ..........................................................29 1.6.6. L'installation de la version 1.5 du JDK de Sun sous Windows .............................................................30 1.6.7. Installation JDK 1.4.2 sous Linux Mandrake 10..................................................................................31 2. Les notions et techniques de base en Java....................................................................................................................35 2.1. Les concepts de base.......................................................................................................................................35 2.1.1. La compilation et l'exécution................................................................................................................35 2.1.2. Les packages.........................................................................................................................................38 2.1.3. Le déploiement sous la forme d'un jar..................................................................................................40 2.1.4. Le classpath...........................................................................................................................................41 Développons en Java
  • 3. Table des matières 2. Les notions et techniques de base en Java 2.1.4.1. La définition du classpath pour exécuter une application ...........................................................43 2.1.4.2. La définition du classpath pour exécuter une application avec la variable CLASSPATH .........45 2.1.4.3. La définition du classpath pour exécuter une application utilisant une ou plusieurs bibliothèques .............................................................................................................................45 2.1.4.4. La définition du classpath pour exécuter une application packagée en jar.................................46 2.2. L'exécution d'une applet..................................................................................................................................48 3. La syntaxe et les éléments de bases de Java.................................................................................................................49 3.1. Les règles de base ............................................................................................................................................49 3.2. Les identificateurs...........................................................................................................................................49 3.3. Les commentaires ............................................................................................................................................50 3.4. La déclaration et l'utilisation de variables.......................................................................................................50 3.4.1. La déclaration de variables...................................................................................................................50 3.4.2. Les types élémentaires..........................................................................................................................51 3.4.3. Le format des types élémentaires..........................................................................................................52 3.4.4. L'initialisation des variables..................................................................................................................53 3.4.5. L'affectation..........................................................................................................................................53 3.4.6. Les comparaisons..................................................................................................................................54 3.5. Les opérations arithmétiques ...........................................................................................................................54 3.5.1. L'arithmétique entière...........................................................................................................................55 3.5.2. L'arithmétique en virgule flottante........................................................................................................55 3.5.3. L'incrémentation et la décrémentation..................................................................................................56 3.6. La priorité des opérateurs................................................................................................................................57 3.7. Les structures de contrôles..............................................................................................................................57 3.7.1. Les boucles............................................................................................................................................57 3.7.2. Les branchements conditionnels...........................................................................................................59 3.7.3. Les débranchements..............................................................................................................................59 3.8. Les tableaux .....................................................................................................................................................59 3.8.1. La déclaration des tableaux...................................................................................................................60 3.8.2. L'initialisation explicite d'un tableau....................................................................................................60 3.8.3. Le parcours d'un tableau.......................................................................................................................61 3.9. Les conversions de types.................................................................................................................................61 3.9.1. La conversion d'un entier int en chaîne de caractère String ..................................................................62 3.9.2. La conversion d'une chaîne de caractères String en entier int..............................................................62 3.9.3. La conversion d'un entier int en entier long..........................................................................................62 3.10. La manipulation des chaînes de caractères...................................................................................................62 3.10.1. Les caractères spéciaux dans les chaines............................................................................................63 3.10.2. L'addition de chaînes de caractères.....................................................................................................63 3.10.3. La comparaison de deux chaines........................................................................................................64 3.10.4. La détermination de la longueur d'une chaine....................................................................................64 3.10.5. La modification de la casse d'une chaine............................................................................................64 4. La programmation orientée objet.................................................................................................................................65 4.1. Le concept de classe........................................................................................................................................65 4.1.1. La syntaxe de déclaration d'une classe ..................................................................................................65 4.2. Les objets.........................................................................................................................................................66 4.2.1. La création d'un objet : instancier une classe........................................................................................66 4.2.2. La durée de vie d'un objet.....................................................................................................................68 4.2.3. La création d'objets identiques..............................................................................................................68 4.2.4. Les références et la comparaison d'objets.............................................................................................68 4.2.5. L'objet null............................................................................................................................................69 4.2.6. Les variables de classes .........................................................................................................................69 4.2.7. La variable this......................................................................................................................................69 4.2.8. L'opérateur instanceof...........................................................................................................................70 4.3. Les modificateurs d'accès................................................................................................................................71 4.3.1. Les mots clés qui gèrent la visibilité des entités...................................................................................71 4.3.2. Le mot clé static....................................................................................................................................71 4.3.3. Le mot clé final.....................................................................................................................................72 Développons en Java
  • 4. Table des matières 4. La programmation orientée objet 4.3.4. Le mot clé abstract................................................................................................................................73 4.3.5. Le mot clé synchronized.......................................................................................................................73 4.3.6. Le mot clé volatile .................................................................................................................................73 4.3.7. Le mot clé native...................................................................................................................................74 4.4. Les propriétés ou attributs...............................................................................................................................74 4.4.1. Les variables d'instances.......................................................................................................................74 4.4.2. Les variables de classes .........................................................................................................................74 4.4.3. Les constantes.......................................................................................................................................74 4.5. Les méthodes...................................................................................................................................................75 4.5.1. La syntaxe de la déclaration..................................................................................................................75 4.5.2. La transmission de paramètres..............................................................................................................76 4.5.3. L'émission de messages........................................................................................................................77 4.5.4. L'enchainement de références à des variables et à des méthodes.........................................................77 4.5.5. La surcharge de méthodes.....................................................................................................................77 4.5.6. Les constructeurs ...................................................................................................................................78 4.5.7. Le destructeur........................................................................................................................................79 4.5.8. Les accesseurs.......................................................................................................................................79 4.6. L'héritage.........................................................................................................................................................79 4.6.1. Le principe de l'héritage........................................................................................................................79 4.6.2. La mise en oeuvre de l'héritage.............................................................................................................80 4.6.3. L'accès aux propriétés héritées ..............................................................................................................80 4.6.4. La redéfinition d'une méthode héritée ...................................................................................................80 4.6.5. Le polymorphisme................................................................................................................................80 4.6.6. Le transtypage induit par l'héritage facilite le polymorphisme.............................................................81 4.6.7. Les interfaces et l'héritage multiple......................................................................................................81 4.6.8. Des conseils sur l'héritage.....................................................................................................................83 4.7. Les packages...................................................................................................................................................83 4.7.1. La définition d'un package....................................................................................................................83 4.7.2. L'utilisation d'un package......................................................................................................................83 4.7.3. La collision de classes...........................................................................................................................84 4.7.4. Les packages et l'environnement système .............................................................................................84 4.8. Les classes internes.........................................................................................................................................84 4.8.1. Les classes internes non statiques.........................................................................................................87 4.8.2. Les classes internes locales...................................................................................................................91 4.8.3. Les classes internes anonymes..............................................................................................................93 4.8.4. Les classes internes statiques................................................................................................................94 4.9. La gestion dynamique des objets....................................................................................................................95 5. Les packages de bases .....................................................................................................................................................96 5.1. Les packages selon la version du JDK............................................................................................................96 5.2. Le package java.lang.....................................................................................................................................102 5.2.1. La classe Object..................................................................................................................................102 5.2.1.1. La méthode getClass()..............................................................................................................103 5.2.1.2. La méthode toString()...............................................................................................................103 5.2.1.3. La méthode equals() ..................................................................................................................103 5.2.1.4. La méthode finalize()................................................................................................................103 5.2.1.5. La méthode clone()...................................................................................................................104 5.2.2. La classe String...................................................................................................................................104 5.2.3. La classe StringBuffer.........................................................................................................................106 5.2.4. Les wrappers.......................................................................................................................................107 5.2.5. La classe System.................................................................................................................................108 5.2.5.1. L'utilisation des flux d'entrée/sortie standard ............................................................................108 5.2.5.2. Les variables d'environnement et les propriétés du système....................................................110 5.2.6. Les classes Runtime et Process...........................................................................................................112 5.3. La présentation rapide du package awt java ..................................................................................................115 5.4. La présentation rapide du package java.io....................................................................................................115 5.5. Le package java.util......................................................................................................................................115 . 5.5.1. La classe StringTokenizer...................................................................................................................115 Développons en Java
  • 5. Table des matières 5. Les packages de bases 5.5.2. La classe Random...............................................................................................................................116 5.5.3. Les classes Date et Calendar...............................................................................................................116 5.5.4. La classe SimpleDateFormat..............................................................................................................117 5.5.5. La classe Vector..................................................................................................................................123 5.5.6. La classe Hashtable.............................................................................................................................124 5.5.7. L'interface Enumeration......................................................................................................................124 5.5.8. La manipulation d'archives zip...........................................................................................................125 5.5.9. Les expressions régulières..................................................................................................................128 5.5.9.1. Les motifs.................................................................................................................................129 5.5.9.2. La classe Pattern.......................................................................................................................130 5.5.9.3. La classe Matcher.....................................................................................................................131 5.5.10. La classe Formatter...........................................................................................................................133 5.5.11. La classe Scanner..............................................................................................................................134 5.6. La présentation rapide du package java.net..................................................................................................135 5.7. La présentation rapide du package java.applet.............................................................................................135 . 6. Les fonctions mathématiques .......................................................................................................................................136 6.1. Les variables de classe..................................................................................................................................136 6.2. Les fonctions trigonométriques.....................................................................................................................137 6.3. Les fonctions de comparaisons.....................................................................................................................137 6.4. Les arrondis...................................................................................................................................................137 6.4.1. La méthode round(n)...........................................................................................................................137 6.4.2. La méthode rint(double) ......................................................................................................................138 6.4.3. La méthode floor(double)...................................................................................................................138 6.4.4. La méthode ceil(double).....................................................................................................................139 6.4.5. La méthode abs(x)...............................................................................................................................139 6.5. La méthode IEEEremainder(double, double) ................................................................................................139 6.6. Les Exponentielles et puissances..................................................................................................................140 6.6.1. La méthode pow(double, double).......................................................................................................140 6.6.2. La méthode sqrt(double).....................................................................................................................140 6.6.3. La méthode exp(double).....................................................................................................................140 6.6.4. La méthode log(double)......................................................................................................................141 6.7. La génération de nombres aléatoires.............................................................................................................141 6.7.1. La méthode random()..........................................................................................................................141 6.8. La classe BigDecimal....................................................................................................................................141 7. La gestion des exceptions.............................................................................................................................................148 7.1. Les mots clés try, catch et finally..................................................................................................................149 7.2. La classe Throwable......................................................................................................................................150 7.3. Les classes Exception, RunTimeException et Error.....................................................................................151 7.4. Les exceptions personnalisées .......................................................................................................................151 7.5. Les exceptions chaînées................................................................................................................................152 7.6. L'utilisation des exceptions...........................................................................................................................153 8. Le multitâche .................................................................................................................................................................155 8.1. L'interface Runnable.....................................................................................................................................155 8.2. La classe Thread............................................................................................................................................156 8.3. La création et l'exécution d'un thread............................................................................................................158 8.3.1. La dérivation de la classe Thread........................................................................................................158 8.3.2. L'implémentation de l'interface Runnable..........................................................................................159 8.3.3. La modification de la priorité d'un thread...........................................................................................160 8.4. La classe ThreadGroup ..................................................................................................................................161 8.5. Un thread en tâche de fond (démon).............................................................................................................161 8.6. L'exclusion mutuelle.....................................................................................................................................162 8.6.1. La sécurisation d'une méthode............................................................................................................162 8.6.2. La sécurisation d'un bloc.....................................................................................................................162 8.6.3. La sécurisation de variables de classes...............................................................................................163 8.6.4. La synchronisation : les méthodes wait() et notify() ...........................................................................163 Développons en Java
  • 6. Table des matières 9. JDK 1.5 (nom de code Tiger).......................................................................................................................................164 9.1. Les nouveautés du langage Java version 1.5.................................................................................................164 9.2. L'autoboxing / unboxing ................................................................................................................................164 9.3. Les importations statiques.............................................................................................................................165 9.4. Les annotations ou méta données (Meta Data).............................................................................................166 9.5. Les arguments variables (varargs) .................................................................................................................166 9.6. Les generics...................................................................................................................................................168 9.7. Les boucles pour le parcours des collections................................................................................................171 9.8. Les énumérations (type enum)......................................................................................................................173 10. Les annotations...........................................................................................................................................................177 10.1. La mise en oeuvre des annotations ..............................................................................................................178 10.2. L'utilisation des annotations........................................................................................................................179 10.2.1. La documentation..............................................................................................................................179 10.2.2. L'utilisation par le compilateur.........................................................................................................180 10.2.3. La génération de code.......................................................................................................................180 10.2.4. La génération de fichiers...................................................................................................................180 10.2.5. Les API qui utilisent les annotations .................................................................................................180 10.3. Les annotations standards ............................................................................................................................180 10.3.1. L'annotation @Deprecated................................................................................................................180 10.3.2. L'annotation @Override....................................................................................................................181 10.3.3. L'annotation @SuppressWarning ......................................................................................................183 10.4. Les annotations communes (Common Annotations)..................................................................................184 10.4.1. L'annotation @Generated ..................................................................................................................184 10.4.2. Les annotations @Resource et @Resources.....................................................................................185 10.4.3. Les annotations @PostConstruct et @PreDestroy............................................................................186 10.5. Les annotations personnalisées...................................................................................................................186 10.5.1. La définition d'une annotation ...........................................................................................................186 10.5.2. Les annotations pour les annotations................................................................................................188 10.5.2.1. L'annotation @Target.............................................................................................................188 10.5.2.2. L'annotation @Retention........................................................................................................189 10.5.2.3. L'annotation @Documented...................................................................................................189 10.5.2.4. L'annotation @Inherited.........................................................................................................190 10.6. L'exploitation des annotations.....................................................................................................................190 10.6.1. L'exploitation des annotations dans un Doclet .................................................................................190 . 10.6.2. L'exploitation des annotations avec l'outil Apt.................................................................................191 10.6.3. L'exploitation des annotations par introspection ...............................................................................197 10.6.4. L'exploitation des annotations par le compilateur Java....................................................................199 10.7. L'API Pluggable Annotation Processing.....................................................................................................199 10.7.1. Les processeurs d'annotations...........................................................................................................200 10.7.2. L'utilisation des processeurs par le compilateur...............................................................................202 10.7.3. La création de nouveaux fichiers......................................................................................................202 10.8. Les ressources relatives aux annotations .....................................................................................................204 Partie 2 : Développement des interfaces graphiques.....................................................................................................205 11. Le graphisme...............................................................................................................................................................206 11.1. Les opérations sur le contexte graphique....................................................................................................206 11.1.1. Le tracé de formes géométriques......................................................................................................206 11.1.2. Le tracé de texte................................................................................................................................207 11.1.3. L'utilisation des fontes......................................................................................................................207 11.1.4. La gestion de la couleur....................................................................................................................208 11.1.5. Le chevauchement de figures graphiques.........................................................................................208 11.1.6. L'effacement d'une aire.....................................................................................................................208 11.1.7. La copier une aire rectangulaire........................................................................................................208 12. Les éléments d'interfaces graphiques de l'AWT ......................................................................................................209 12.1. Les composants graphiques .........................................................................................................................210 12.1.1. Les étiquettes .....................................................................................................................................210 Développons en Java
  • 7. Table des matières 12. Les éléments d'interfaces graphiques de l'AWT 12.1.2. Les boutons.......................................................................................................................................211 12.1.3. Les panneaux .....................................................................................................................................211 12.1.4. Les listes déroulantes (combobox)....................................................................................................212 12.1.5. La classe TextComponent.................................................................................................................213 12.1.6. Les champs de texte..........................................................................................................................213 12.1.7. Les zones de texte multilignes..........................................................................................................214 12.1.8. Les listes............................................................................................................................................216 12.1.9. Les cases à cocher.............................................................................................................................219 12.1.10. Les boutons radio............................................................................................................................220 12.1.11. Les barres de défilement.................................................................................................................221 12.1.12. La classe Canvas.............................................................................................................................222 12.2. La classe Component..................................................................................................................................223 12.3. Les conteneurs.............................................................................................................................................224 12.3.1. Le conteneur Panel............................................................................................................................225 12.3.2. Le conteneur Window.......................................................................................................................225 12.3.3. Le conteneur Frame..........................................................................................................................225 12.3.4. Le conteneur Dialog..........................................................................................................................227 12.4. Les menus ....................................................................................................................................................228 12.4.1. Les méthodes de la classe MenuBar.................................................................................................230 12.4.2. Les méthodes de la classe Menu.......................................................................................................230 12.4.3. Les méthodes de la classe MenuItem................................................................................................230 12.4.4. Les méthodes de la classe CheckboxMenuItem...............................................................................231 12.5. La classe java.awt.Desktop.........................................................................................................................231 13. La création d'interfaces graphiques avec AWT......................................................................................................233 13.1. Le dimensionnement des composants.........................................................................................................233 13.2. Le positionnement des composants.............................................................................................................234 13.2.1. La mise en page par flot (FlowLayout).............................................................................................235 13.2.2. La mise en page bordure (BorderLayout).........................................................................................236 13.2.3. La mise en page de type carte (CardLayout)....................................................................................237 13.2.4. La mise en page GridLayout.............................................................................................................238 13.2.5. La mise en page GridBagLayout......................................................................................................240 13.3. La création de nouveaux composants à partir de Panel..............................................................................241 13.4. L'activation ou la désactivation des composants.........................................................................................242 14. L'interception des actions de l'utilisateur .................................................................................................................243 14.1. L'interception des actions de l'utilisateur avec Java version 1.0.................................................................243 14.2. L'interception des actions de l'utilisateur avec Java version 1.1.................................................................243 14.2.1. L'interface ItemListener....................................................................................................................245 14.2.2. L'interface TextListener....................................................................................................................246 14.2.3. L'interface MouseMotionListener.....................................................................................................247 14.2.4. L'interface MouseListener................................................................................................................247 . 14.2.5. L'interface WindowListener ..............................................................................................................248 14.2.6. Les différentes implémentations des Listeners.................................................................................249 14.2.6.1. Une classe implémentant elle même le listener......................................................................249 14.2.6.2. Une classe indépendante implémentant le listener.................................................................250 14.2.6.3. Une classe interne...................................................................................................................251 14.2.6.4. Une classe interne anonyme ....................................................................................................251 14.2.7. Résumé..............................................................................................................................................252 15. Le développement d'interfaces graphiques avec SWING .......................................................................................253 15.1. La présentation de Swing............................................................................................................................253 15.2. Les packages Swing....................................................................................................................................254 15.3. Un exemple de fenêtre autonome................................................................................................................254 15.4. Les composants Swing................................................................................................................................255 15.4.1. La classe JFrame...............................................................................................................................256 15.4.1.1. Le comportement par défaut à la fermeture............................................................................258 15.4.1.2. La personnalisation de l'icône.................................................................................................259 Développons en Java
  • 8. Table des matières 15. Le développement d'interfaces graphiques avec SWING 15.4.1.3. Centrer une JFrame à l'écran ...................................................................................................259 15.4.1.4. Les événements associées à un JFrame..................................................................................260 15.4.2. Les étiquettes : la classe JLabel........................................................................................................260 15.4.3. Les panneaux : la classe JPanel........................................................................................................263 . 15.5. Les boutons.................................................................................................................................................263 15.5.1. La classe AbstractButton..................................................................................................................263 15.5.2. La classe JButton..............................................................................................................................265 15.5.3. La classe JToggleButton...................................................................................................................266 15.5.4. La classe ButtonGroup......................................................................................................................267 15.5.5. Les cases à cocher : la classe JCheckBox.........................................................................................267 15.5.6. Les boutons radio : la classe JRadioButton......................................................................................268 15.6. Les composants de saisie de texte...............................................................................................................268 15.6.1. La classe JTextComponent...............................................................................................................269 15.6.2. La classe JTextField..........................................................................................................................270 15.6.3. La classe JPasswordField..................................................................................................................270 15.6.4. La classe JFormattedTextField.........................................................................................................272 15.6.5. La classe JEditorPane ........................................................................................................................272 15.6.6. La classe JTextPane..........................................................................................................................273 15.6.7. La classe JTextArea..........................................................................................................................273 15.7. Les onglets ...................................................................................................................................................275 15.8. Le composant JTree....................................................................................................................................276 15.8.1. La création d'une instance de la classe JTree....................................................................................276 15.8.2. La gestion des données de l'arbre ......................................................................................................279 15.8.2.1. L'interface TreeNode..............................................................................................................280 15.8.2.2. L'interface MutableTreeNode.................................................................................................280 15.8.2.3. La classe DefaultMutableTreeNode.......................................................................................281 15.8.3. La modification du contenu de l'arbre ...............................................................................................282 15.8.3.1. Les modifications des noeuds fils...........................................................................................282 15.8.3.2. Les événements émis par le modèle ........................................................................................283 15.8.3.3. L'édition d'un noeud................................................................................................................284 15.8.3.4. Les éditeurs personnalisés .......................................................................................................284 15.8.3.5. 3.5 La définition des noeuds éditables....................................................................................285 15.8.4. La mise en oeuvre d'actions sur l'arbre.............................................................................................286 15.8.4.1. Etendre ou refermer un noeud .................................................................................................286 15.8.4.2. La détermination du noeud sélectionné..................................................................................287 15.8.4.3. Le parcours des noeuds de l'arbre...........................................................................................287 15.8.5. La gestion des événements................................................................................................................288 15.8.5.1. La classe TreePath..................................................................................................................289 15.8.5.2. La gestion de la sélection d'un noeud.....................................................................................290 15.8.5.3. Les événements lies à la sélection de noeuds.........................................................................291 15.8.5.4. Les événements lorsqu'un noeud est étendu ou refermé.........................................................293 15.8.5.5. Le contrôle des actions pour étendre ou refermer un noeud...................................................294 15.8.6. La personnalisation du rendu............................................................................................................294 15.8.6.1. Personnaliser le rendu des noeuds..........................................................................................295 15.8.6.2. Les bulles d'aides (Tooltips)...................................................................................................298 15.9. Les menus ....................................................................................................................................................298 15.9.1. La classe JMenuBar..........................................................................................................................301 15.9.2. La classe JMenuItem.........................................................................................................................303 15.9.3. La classe JPopupMenu......................................................................................................................303 15.9.4. La classe JMenu................................................................................................................................305 15.9.5. La classe JCheckBoxMenuItem........................................................................................................306 15.9.6. La classe JRadioButtonMenuItem....................................................................................................306 15.9.7. La classe JSeparator..........................................................................................................................306 15.10. L'affichage d'une image dans une application...........................................................................................307 16. Le développement d'interfaces graphiques avec SWT ............................................................................................312 16.1. La présentation de SWT..............................................................................................................................312 16.2. Un exemple très simple...............................................................................................................................314 Développons en Java
  • 9. Table des matières 16. Le développement d'interfaces graphiques avec SWT 16.3. La classe SWT .............................................................................................................................................314 16.4. L'objet Display............................................................................................................................................315 16.5. L'objet Shell................................................................................................................................................315 . 16.6. Les composants...........................................................................................................................................317 16.6.1. La classe Control...............................................................................................................................317 16.6.2. Les contrôles de base........................................................................................................................318 16.6.2.1. La classe Button......................................................................................................................318 16.6.2.2. La classe Label.......................................................................................................................318 . 16.6.2.3. La classe Text.........................................................................................................................319 16.6.3. Les contrôles de type liste.................................................................................................................320 16.6.3.1. La classe Combo.....................................................................................................................320 16.6.3.2. La classe List..........................................................................................................................321 . 16.6.4. Les contrôles pour les menus............................................................................................................321 16.6.4.1. La classe Menu.......................................................................................................................321 16.6.4.2. La classe MenuItem................................................................................................................322 16.6.5. Les contrôles de sélection ou d'affichage d'une valeur.....................................................................323 16.6.5.1. La classe ProgressBar.............................................................................................................323 16.6.5.2. La classe Scale........................................................................................................................324 16.6.5.3. La classe Slider.......................................................................................................................324 16.6.6. Les contrôles de type « onglets »......................................................................................................325 16.6.6.1. La classe TabFolder................................................................................................................325 16.6.6.2. La classe TabItem...................................................................................................................326 16.6.7. Les contrôles de type « tableau »......................................................................................................326 16.6.7.1. La classe Table ........................................................................................................................326 16.6.7.2. La classe TableColumn...........................................................................................................328 16.6.7.3. La classe TableItem................................................................................................................328 16.6.8. Les contrôles de type « arbre ».........................................................................................................329 16.6.8.1. La classe Tree.........................................................................................................................329 16.6.8.2. La classe TreeItem..................................................................................................................330 16.6.9. La classe ScrollBar ............................................................................................................................330 16.6.10. Les contrôles pour le graphisme.....................................................................................................330 16.6.10.1. La classe Canvas...................................................................................................................330 16.6.10.2. La classe GC.........................................................................................................................331 16.6.10.3. La classe Color ......................................................................................................................332 16.6.10.4. La classe Font.......................................................................................................................332 16.6.10.5. La classe Image.....................................................................................................................333 16.7. Les conteneurs.............................................................................................................................................334 16.7.1. Les conteneurs de base......................................................................................................................334 16.7.1.1. La classe Composite...............................................................................................................334 16.7.1.2. La classe Group .......................................................................................................................336 16.7.2. Les contrôles de type « barre d'outils ».............................................................................................336 16.7.2.1. La classe ToolBar...................................................................................................................336 16.7.2.2. La classe ToolItem..................................................................................................................337 16.7.2.3. Les classes CoolBar et Cooltem.............................................................................................339 16.8. La gestion des erreurs ..................................................................................................................................340 16.9. Le positionnement des contrôles.................................................................................................................340 16.9.1. Le positionnement absolu.................................................................................................................341 16.9.2. Le positionnement relatif avec les LayoutManager..........................................................................341 16.9.2.1. FillLayout...............................................................................................................................341 . 16.9.2.2. RowLayout.............................................................................................................................342 . 16.9.2.3. GridLayout..............................................................................................................................343 16.9.2.4. FormLayout............................................................................................................................346 16.10. La gestion des événements........................................................................................................................346 16.10.1. L'interface KeyListener...................................................................................................................347 16.10.2. L'interface MouseListener..............................................................................................................349 . 16.10.3. L'interface MouseMoveListener.....................................................................................................350 16.10.4. L'interface MouseTrackListener.....................................................................................................351 16.10.5. L'interface ModifyListener.............................................................................................................351 Développons en Java
  • 10. Table des matières 16. Le développement d'interfaces graphiques avec SWT 16.10.6. L'interface VerifyText()..................................................................................................................352 16.10.7. L'interface FocusListener................................................................................................................353 16.10.8. L'interface TraverseListener...........................................................................................................354 16.10.9. L'interface PaintListener.................................................................................................................355 16.11. Les boîtes de dialogue...............................................................................................................................356 16.11.1. Les boîtes de dialogues prédéfinies................................................................................................356 16.11.1.1. La classe MessageBox..........................................................................................................356 16.11.1.2. La classe ColorDialog...........................................................................................................357 16.11.1.3. La classe FontDialog .............................................................................................................358 16.11.1.4. La classe FileDialog ..............................................................................................................359 16.11.1.5. La classe DirectoryDialog .....................................................................................................359 16.11.1.6. La classe PrintDialog............................................................................................................360 16.11.2. Les boites de dialogues personnalisées...........................................................................................361 17. JFace............................................................................................................................................................................363 17.1. La structure générale d'une application.......................................................................................................364 17.2. Les boites de dialogues...............................................................................................................................365 17.2.1. L'affichage des messages d'erreur.....................................................................................................365 17.2.2. L'affichage des messages d'information à l'utilisateur......................................................................366 17.2.3. La saisie d'une valeur par l'utilisateur...............................................................................................368 17.2.4. La boîte de dialogue pour afficher la progression d'un traitement ...................................................369 . Partie 3 : Les API avancées ..............................................................................................................................................373 18. Les collections..............................................................................................................................................................375 18.1. Présentation du framework collection.........................................................................................................375 18.2. Les interfaces des collections......................................................................................................................376 18.2.1. L'interface Collection........................................................................................................................377 18.2.2. L'interface Iterator.............................................................................................................................378 18.3. Les listes......................................................................................................................................................379 18.3.1. L'interface List..................................................................................................................................379 18.3.2. Les listes chaînées : la classe LinkedList..........................................................................................379 18.3.3. L'interface ListIterator......................................................................................................................381 . 18.3.4. Les tableaux redimensionnables : la classe ArrayList......................................................................381 18.4. Les ensembles.............................................................................................................................................382 18.4.1. L'interface Set...................................................................................................................................382 18.4.2. L'interface SortedSet.........................................................................................................................382 18.4.3. La classe HashSet.............................................................................................................................383 . 18.4.4. La classe TreeSet..............................................................................................................................383 18.5. Les collections gérées sous la forme clé/valeur..........................................................................................384 18.5.1. L'interface Map.................................................................................................................................384 18.5.2. L'interface SortedMap.......................................................................................................................385 18.5.3. La classe Hashtable...........................................................................................................................385 18.5.4. La classe TreeMap............................................................................................................................386 18.5.5. La classe HashMap...........................................................................................................................386 18.6. Le tri des collections...................................................................................................................................387 18.6.1. L'interface Comparable.....................................................................................................................387 18.6.2. L'interface Comparator.....................................................................................................................387 18.7. Les algorithmes...........................................................................................................................................387 18.8. Les exceptions du framework.....................................................................................................................389 19. Les flux.........................................................................................................................................................................390 19.1. La présentation des flux..............................................................................................................................390 19.2. Les classes de gestion des flux....................................................................................................................390 19.3. Les flux de caractères..................................................................................................................................392 19.3.1. La classe Reader ................................................................................................................................393 19.3.2. La classe Writer................................................................................................................................394 19.3.3. Les flux de caractères avec un fichier...............................................................................................394 Développons en Java
  • 11. Table des matières 19. Les flux 19.3.3.1. Les flux de caractères en lecture sur un fichier......................................................................394 . 19.3.3.2. Les flux de caractères en écriture sur un fichier.....................................................................395 19.3.4. Les flux de caractères tamponnés avec un fichier............................................................................395 . 19.3.4.1. Les flux de caractères tamponnés en lecture avec un fichier..................................................395 19.3.4.2. Les flux de caractères tamponnés en écriture avec un fichier................................................396 19.3.4.3. La classe PrintWriter..............................................................................................................397 . 19.4. Les flux d'octets ...........................................................................................................................................399 19.4.1. Les flux d'octets avec un fichier. ......................................................................................................399 . 19.4.1.1. Les flux d'octets en lecture sur un fichier...............................................................................399 19.4.1.2. Les flux d'octets en écriture sur un fichier..............................................................................400 19.4.2. Les flux d'octets tamponnés avec un fichier.....................................................................................401 19.5. La classe File...............................................................................................................................................402 19.6. Les fichiers à accès direct...........................................................................................................................404 . 19.7. La classe java.io.Console............................................................................................................................406 20. La sérialisation............................................................................................................................................................407 20.1. Les classes et les interfaces de la sérialisation............................................................................................407 20.1.1. L'interface Serializable ......................................................................................................................407 20.1.2. La classe ObjectOuputStream...........................................................................................................408 20.1.3. La classe ObjectInputStream............................................................................................................409 20.2. Le mot clé transient.....................................................................................................................................410 20.3. La sérialisation personnalisée ......................................................................................................................411 20.3.1. L'interface Externalizable.................................................................................................................411 21. L'interaction avec le réseau.......................................................................................................................................412 21.1. L'introduction aux concepts liés au réseau..................................................................................................412 21.2. Les adresses internet...................................................................................................................................413 . 21.2.1. La classe InetAddress ........................................................................................................................413 21.3. L'accès aux ressources avec une URL .........................................................................................................414 21.3.1. La classe URL...................................................................................................................................414 21.3.2. La classe URLConnection................................................................................................................415 21.3.3. La classe URLEncoder ......................................................................................................................416 21.3.4. La classe HttpURLConnection.........................................................................................................417 21.4. L'utilisation du protocole TCP....................................................................................................................417 21.4.1. La classe SocketServer ......................................................................................................................418 21.4.2. La classe Socket................................................................................................................................420 21.5. L'utilisation du protocole UDP ....................................................................................................................421 21.5.1. La classe DatagramSocket................................................................................................................421 21.5.2. La classe DatagramPacket................................................................................................................422 21.5.3. Un exemple de serveur et de client...................................................................................................422 21.6. Les exceptions liées au réseau .....................................................................................................................424 21.7. Les interfaces de connexions au réseau .......................................................................................................424 22. La gestion dynamique des objets et l'introspection.................................................................................................426 22.1. La classe Class............................................................................................................................................426 22.1.1. L'obtention d'un objet à partir de la classe Class..............................................................................427 22.1.1.1. La détermination de la classe d'un objet.................................................................................427 22.1.1.2. L'obtention d'un objet Class à partir d'un nom de classe........................................................427 22.1.1.3. Une troisième façon d'obtenir un objet Class.........................................................................428 22.1.2. Les méthodes de la classe Class........................................................................................................428 22.2. La recherche des informations sur une classe.............................................................................................429 22.2.1. La recherche de la classe mère d'une classe ......................................................................................429 22.2.2. La recherche des modificateurs d'une classe .....................................................................................429 22.2.3. La recherche des interfaces implémentées par une classe................................................................430 22.2.4. La recherche des champs publics......................................................................................................430 22.2.5. La recherche des paramètres d'une méthode ou d'un constructeur...................................................431 22.2.6. La recherche des constructeurs de la classe......................................................................................432 22.2.7. La recherche des méthodes publiques...............................................................................................433 Développons en Java