Ceci est une ancienne révision du document !
Swing
TD6
TODO
Partie 1
Pour la partie 1, travailler en binômes : 1 étudiant utilise les actionListeners, 1 autre le propertyChangeListener.
Les expériences sont ensuite partagées.
Dans chaque binôme :Les expériences sont ensuite partagées.
- 1 étudiant implémente les actions suivantes en utilisant des ActionListener dans la vue FenetreDeDessin
- changement d'outil sur menu (Etoile ou crayon)
- Fermeture de l'application
- Effacement du dessin
- 1 autre implémente ces 3 mêmes actions en utilisant PropertyChangeListener au niveau du contrôleur
- Comparer ensuite les 2 versions (avantages/inconvénients)
Partie 2
- Implémenter les actions des éléments de menu Ouvrir, Enregistrer et Enregistrer sous :
- analyser la mise en oeuvre de la sérialisation proposée (Interface, classe DAO, classes métier)
- utiliser l'instance dessinDao du contrôleur pour l'ouverture et la sauvegarde, et la propriété dirty (drapeau pour désigner la modification)
- utiliser JFileChooser pour les boîtes de dialogue (voir FileDialogEx.java) voir JFileChooser javadoc
- Gérer les exceptions
Partie 3
- Créer une boîte de dialogue A propos de… et ajouter un élément de menu correspondant dans un menu ?/A propos de… voir JDialog
- Proposer des solutions pour qu'une seule instance de DialogAbout soit créée pendant l'exécution de l'application
- Créer un sous menu Couleur dans Outil, proposant de changer la couleur de l'outil (noir, bleu, rouge, vert, jaune), modifier le modèle pour prendre en compte la couleur des figures.
Boîte de dialogue A propos de… :
Ressources
- Charger une image contenue dans les sources java :
String imagePathAndFileName="CheminRelatifVersImage"; java.net.URL imageURL = getClass().getResource(imagePathAndFileName); img = new ImageIcon(imageURL).getImage();
- Dessiner sur un JPanel :
JPanel panel = new JPanel() {
@Override
public void paint(Graphics g) {
//dessin sur g...
}
};
- L'interface PropertyChangeListener
- l'EDT Swing : Event Dispatching Thread
TD5
TODO
- Terminer l'implémentation Dessin Swing avec 2 outils + Contrôleur principal
- Ajouter le changement d'outil sur frappe touche du clavier (e → Etoile , c → Crayon ) voir addKeyListener
- Ajouter le changement d'outil dans un menu Outil composé de 2 JRadioButtonMenuItem, intégrés dans un ButtonGroup :
Menu Outil :
TD4
Composants
JFrame
java 7 JFrame API
Paramètres de base
- setTitle(String)
- setSize(int, int)
- setDefaultCloseOperation(int)
- setLocationRelativeTo(Component)
- setJMenuBar(JMenu)
- setLayout(LayoutManager)
- add(Component, Object)
- setVisible(Boolean)
Ajout de listeners :
- addMouseListener(MouseListener l)
- addMouseMotionListener(MouseMotionListener l)
- addKeyListener(KeyListener l)
JMenuBar
- add(JMenu)
JMenu
- add(JMenuItem)
- addSeparator()
JMenuItem
- addActionListener(ActionListener)
LayoutManager
BorderLayout
parent.setLayout(new BorderLayout()); parent.add(component, BorderLayout.CENTER);
GridLayout
parent.setLayout(new GridLayout(1, 3)); parent.add(component);
