1 / 24

Jean-Rémi LECQ Version 0.1

Jean-Rémi LECQ Version 0.1. Développement d’interfaces graphiques en Java à l’aide de SWING. Sommaire. Introduction Rappel sur les JFC AWT Swing Première Application (TD1) Fenêtres, panneaux Fenêtres : JFrame, JDialog, JWindow Panneaux : JRootPane, J Panel, JMenuBar PremierJMenu (TD2)

adonica
Download Presentation

Jean-Rémi LECQ Version 0.1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jean-Rémi LECQVersion 0.1 Développement d’interfaces graphiques en Java à l’aide de SWING

  2. Sommaire • Introduction • Rappel sur les JFC • AWT • Swing • Première Application (TD1) • Fenêtres, panneaux • Fenêtres : JFrame, JDialog, JWindow • Panneaux : JRootPane, J Panel, JMenuBar • PremierJMenu (TD2) • Les évènements • PremierJMenu (TD2 – suite) + SecondJMenu +FocusEvent

  3. Rappel sur les JFC JFC = Java Foundation Classes. Ensemble de librairies Java permettant la constructions d’applications graphiques (GUI et graphiques) sous n’importe quel OS. Les 5 parties majeures des JFC :AWT – SWING – Accessibility - Java2D - Internationalization

  4. 1- Contexte D’abord… AWT : Abstract Windowing Toolkit.Première librairie fournie par SUN pour le développement d’interfaces graphiques.Eléments graphiques auront l’apparence que l’OS leur donne (utilisation ressources systèmes via abstractions) !

  5. 1- Contexte Ensuite … SWING : utilise des éléments d’AWT.SWING peut être considérée comme une évolution d’AWT.Eléments graphiques dessinés par la librairie elle-même ! Composant graphique peut ne pas avoir d’équivalent système.Donc -> Portabilité accrue.SWING ne remplace pas AWT, c’est juste un couche au dessus.

  6. 2- TD n°1 Première application SWING Ordre des tâches à effectuer ; • Ecriture du code de la classe, • Compilation (javac.exe) et debugage (?), • Création du Manifest, • Création de l’archive auto exécutable (jar.exe), • Exécution de notre archive auto exécutable (java.exe)

  7. 2.1- Ecriture du code de la classe import javax.swing.*; publicclass PremiereApp { privatestatic String texte = "Hello World!"; publicstaticvoid main(String[ ] args) { JFrame maFenetre = new JFrame( "ma première fenêtre SWING"); maFenetre.setSize(250,80); JLabel monLabel = new JLabel(texte, SwingConstants.LEFT); maFenetre.getContentPane().add(monLabel); maFenetre.show(); maFenetre.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE); } }

  8. 2.2- Compilation (javac.exe) et debugage • Sous Eclipse ou autre Framework -> automatique. • En ligne de commande -> positionnez vous dans le répertoire qui contient votre classe java, puis : "/pathtojavac.exe/javac" MaClass.java

  9. 2.3 - Création du Manifest • Manifest -> Qu'est ce que c'est ? C'est un fichier qui spécifie la classe "exécutable".Celle qui contient la méthode ??? public static void main (String[ ] args){ … }

  10. 2.3 - Création du Manifest Créez un fichier Manifest.mf. Contenu : Main-Class: MaClass Attention :- Pas d'espace entre "Main-Class" et ":",- un espace entre ":" et "MaClass",- (au moins) un retour à la ligne à la fin de cette ligne !

  11. 2.4 - Création de l’archive auto exécutable (jar.exe) Sous Eclipse ou autre Framework -> automatique. En ligne de commande -> positionnez vous dans le répertoire qui contient votre classe java, puis : "/pathtojarexe/jar" -cmf Manifest.mf NomduJar.jar MaClass1.class MaClass2.class Pour notre exemple : "/pathtojar.exe/jar" -cmf Manifest.mf PremiereApp.jar PremiereApp.class Sur moka : U:/pathtojar.exe/> "C:\Program Files\java\j2sdk1.4.1_02\bin\jar"  -cmf manifest.mf PremiereApp.jar PremiereApp.class

  12. 2.5- Exécution de notre archive auto exécutable (java.exe) En mode "fenêtre" : double clic sur l'archive auto exécutable "MonArchive.jar". En mode console : "/pathtojava.exe/java" -jar MonArchive.jar

  13. 2.6- Listing du contenu d'un jar • En mode console : jar –tvf MonArchive.jar

  14. 3 – Fenêtres, panneaux et bordures 3.1- FENETRES En SWING : • JFrame, • JDialog (fenêtres secondaires modales), • JWindow (Splash screen).

  15. 3.1.1- JFrame - Architecture JFrame JRootPane glassPane layeredPane ( JLayeredPane) (1 Jpannel par défaut) contentPane menuBar (1 JPannel par défaut) (Null JmenuBar par défaut)

  16. menuBar glassPane layeredPane contentPane 3.1.1- JFrame - Architecture

  17. 3.2 – Les panneaux Conteneurs • JRootPane. • glassPane (attrape événements). • layeredPane (conteneur de fenêtres filles), • contentPane (JPane par défaut). • menuBar (null par défaut). • JPanel : conteneur de composant(s), leur organisation dépend d'un "layour manager". • JMenuBar : "null", sinon unique par JFrame.

  18. Créer la fenêtre suivante (l'affichage seulement, les évènements seront ajoutés après). 3- TD n°2 Premier JMenu

  19. 3.2.4- La gestion des évènements • Evènement : action de l'utilisateur (en règle générale), clic sur un bouton; sélection, simple déplacement souris. • Exemples de classes d’évènements : FocusEvent : Passage du focus à un composant MouseEvent : Clic sur un JPanel ActionEvent : Clic sur un JButton DocumentEvent : Ajout d’une lettre à un JTextField • Objet évènement contient des informations sur son contexte d'apparition(coordonnée, source, valeur d'une touche).

  20. 3.2.4- La gestion des évènements • Classe java.util.EventObject :Superclasse de tous les évènements. • Exemple de classe d'évènements : ActionEvent -> clic sur un composant, ComponentEvent -> modification d'un composant ContainerEvent  -> composant ajouté à un conteneur FocusEvent KeyEvent  MouseEvent 

  21. Abonnement addActionListener, addKeyListener, addFocusListener Listener Bouton Notification 3.2.4- La gestion des évènements • Listener : objet java à l'écoute d'un évènement sur un composant déterminé.-info sur lui-même,-sur l'objet à son origine (source).

  22. 3.2.4- La gestion des évènements • Listener = classe qui implémente une des interfaces de java.awt.Event (à importer). • Méthodes à redéfinir (cf. cours) • Exemple : public class PremierMenu extends JFrame implements ActionListener { public void actionPerformed(ActionEvent e) { … } }

  23. TD n°2 Premier JMenu (suite) • Ajout des évènements TD n°2 Second Menu TD n°3 FocusEvent- Color JFrame.getBackground() - java.awt.Color -> Color.GREEN

More Related