Rappels pour l`examen

publicité
rappels
Cours Java - F. Michel
Ceux que vous devez
connaître et savoir faire
Les bases de Java
●
La variable d'environnement CLASSPATH
●
La notion de package
●
créer une javadoc pour différents niveaux
●
●
Savoir que le package java.lang est importé par
défaut
Connaître les méthodes importantes de la classe
Object
Définir et utiliser un package
●
Toute nouvelle classe doit impérativement se
trouver dans un package !
Le fichier MonProg.java doit se trouver dans le répertoire prog
Écrire le nom d'une classe
correctement
●
Le nom complet et correct d'une classe/interface
s'écrit en donnant l'ensemble des informations :
MouseListener
java.awt.event.MouseListener
java.lang
java.lang.Object
Les packages/classes utiles
●
●
Connaître certaines classes du package java.util :
par exemple java.util.ArrayList<E>
Les opérations de base
java.util
java.util
Définir et parcourir une liste
For each
Avec un iterator
Rappels sur les listes
Le package javax.swing
●
●
●
Connaître les composants de base qui se trouvent
dans le package javax.swing : JFrame, JPanel,
JButton, etc.
Connaître les méthodes de base de la classe
JFrame : setDefaultCloseOperation, add, setSize,
setLocation, setTitle, setVisible, etc.
Les différents LayoutManager
Les composants swing de base
●
Comprendre comment les composants sont
agencés les uns avec les autres
–
Hiérarchie des composants :
javax.swing.JFrame
Le ContentPane de JFrame
Le composant de base : JPanel
La mise en page des composants
●
Les différents LayoutManager
–
Par défaut le contentPane d'une JFrame est géré par
un java.awt.BorderLayout
Les différents LayoutManager
FlowLayout
●
FlowLayout : dispose les composants en ligne les uns après
les autres, quand une ligne est pleine les composants suivants
sont placés sur la ligne suivante.
BorderLayout
●
Divise le composant en 4 régions : Center, South,
North, West et East.
GridLayout
●
Définie une grille : les composants sont placés en
remplissant successivement chacune des cases de
la grille dans l'ordre.
Le gestionnaire du contentPane
●
Le contentPane d'une JFrame est, par défaut, géré
par un BorderLayout
Le package java.awt.event
●
●
Comprendre le mécanisme de gestion des
événements
Connaître les classes/interfaces nécessaire à la
gestion des événements souris/boutons
Principe de base des événements
JPanel
MouseEvent
MouseListener
JButton
ActionEvent
ActionListener
Les interfaces de java.awt.event
Les classes de java.awt.event
Exemple événement bouton
Exemple événement souris
Les classes internes anonymes
Pour un bouton
Pour la souris
Menus
javax.swing.
JMenuBar
JMenu
Barre de menu
OBLIGATOIRE
Un menu
ajout dans la barre
ajout de la barre
dans la JFrame
JMenuItem
javax.swing.JMenuItem
Écouter les JMenuItems
●
●
●
Les JMenuItems sont des boutons !
Pour les écouter, on applique donc le même
principe que pour les boutons
Il faut donc créer un ActionListener par JMenuItem
Écouter les JMenuItems
●
Pour les autres composants, on utilise simplement
l'interface écouteur qui correspond aux
composants (cf. doc !)
javax.swing.JOptionPane
showMessageDialog
JOptionPane.showMessageDialog(frame,
"Eggs are not supposed to be green.",
"Message");
Les méthodes de la classe JOptionPane sont
statiques
java.util.HashMap<K,V>
java.util.HashMap<K,V>
●
●
●
Tableau associatif (implémenté en table de
hachage)
Permet d'associer des clés de type K à des valeurs
de types V
Implémente l'interface java.util.Map
exemple
Sur la manière dont vous
devez écrire vos programmes
Programmation objet
appel de méthode d'instance
instanceObjet . nomMethode ( arguments );
appel de méthode de classe (statiques)
NomClasse . nomMethode ( arguments );
Javadoc : obligatoire!
Qu'est-ce qu'un bon programme ?
●
A première vue, un bon programme
–
fonctionne suivant le cahier des charges
–
possède un code optimisé (mémoire + cpu) : ne
comporte pas de tests inutiles par exemple.
–
Traite toutes les exceptions
D'un point de vue génie logiciel,
Tout ceci est loin d'être suffisant
D'un point de vue génie logiciel
●
Un bon programme doit être :
Facilement réutilisable
Facile à maintenir
D'un point de vue génie logiciel
●
Un bon programme orienté objet :
–
Bien décomposé : hiérarchie des classes, méthodes
courtes (30 lignes, c'est déjà beaucoup)
–
Bien factorisé : si on fait un traitement particulier plus
d'une fois, il faut en faire une méthode.
–
Niveau de visibilité bien pensé : seules les méthodes
destinées à être utilisées par d'autres objets doivent
être public. Idem pour les classes.
–
Bien documenté : maintenance, réutilisation, utilisation
par un tiers, intégration dans les ides (javadoc), etc.
–
Ne réinvente rien : il faut utiliser les librairies existantes
au maximum
À propos du projet
Références croisées : exemple
●
●
●
Une TamaFrame doit connaître le tamagoshi qui lui
est associé :
–
Tamagoshi t = new Tamagoshi(name);
–
TamaFrame tf = new TamaFrame(t):
Idem pour le TamaJPanel :
–
Dans le constructeur de la TamaFrame tf
–
TamaJPanel tjp = new TamaJPanel(t);
Inversement, le tamagoshi peut avoir besoin de
connaître son TamaJPanel :
–
Dans le constructeur du TamaJPanel :
–
monTama.setTamaPanel(this);
Téléchargement