Ceci est une ancienne révision du document !
Swing
TD6
- Comparatif Versions ActionListener dans les vues / PropertyChangeListener au niveau du contrôleur
- changement d'outil sur menu
- Fermeture de l'application
- Effacement du dessin
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 :
- 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.
Menu Outil :
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
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);