SlideShare une entreprise Scribd logo
SWING :
                                 principes de base

Introduction
           Swing est la 2nd bibliothèque de classes, après AWT, qui permet de créer une Interface Utilisateur et de
la gérer. La procédure de construction d’une interface Swing est similaire à celle d’AWT : créer un cadre, des
composants dans ce cadre, une mise en page pour ces composants, des méthodes en réponse aux actions de
l’utilisateur. Il n’est pas possible de faire le tour de Swing en un seul chapitre, c’est pourquoi ce chapitre
s’intéresse seulement aux principes de base et à la construction d’une UI simple.



Différences entre Swing et AWT
         Du côté de l’utilisateur, la différence est majeurs : l’apparence des composants est totalement différente
(bien que celle-ci soit paramétrable). Du côté du concepteur, Swing présente plus de composants qu’AWT, ces
composants commencent par un J (ex : JButton, JLabel…), la gestion des évènements est complètement
différente. Les layouts, eux, restent les mêmes.



Composants
         Comme précédemment dit, les composants sont presque les mêmes que ceux d’AWT. Pour une
description des composants et plus d’informations, se reporter au chapitre sur AWT.
             JButton
             JLabel
             JTextArea
             JTextField
             JRadioButton
             JCheckBox
             JPasswordField
             JComboBox
             JList
             JScrollBar

D’autres composants avancés seront traités dans les chapitres suivants concernant Swing.




Conteneurs
         Les conteneurs sont les objets dans lesquels sont incorporés les composants de l’UI. Un cadre (JFrame)
est un conteneur. On peut citer : JFrame, JDialog (c’est un peu différent…), JPanel, JScrollPane, JTabbedPane,
JSplitPane…
             JFrame, JPanel : classiques, une JFrame est un JPanel dans un cadre spécifique à l’environnement
             (le cadre contenant par exemple la X pour fermer la fenêtre)
             JDialog : boîte de dialogue qui surgit en plein milieu de l’écran (les utilisateurs de Windows
             connaissent sûrement celle de type Warning qui contient les habituelles Fatal Errors)
             JScrollPane : barres de défilement. Ajouter un JScrollPane à votre JFrame, ajoutez ensuite un
             JTextArea (ou autre composant nécessitant des barres de défilement) l’intérieur de ce JScrollPane.
             JtabbedPane : cadre à onglets
Gestion d’évènements
         Les gestionnaires d’événement permettent d’intercepter les actions des utilisateurs et d’assigner au
programme un comportement adapté en réponse. Il existe de nombreuses manières de gérer les évènements. Ce
chapitre propose une manière classique, c’est celle qui est utilisée par défaut par JBuilder. Elle se met en œuvre
en 3 temps : création d’un « écouteur » d’actions qui attend et capte les actions de l’utilisateur, d’une méthode
qui met en œuvre la réponse adaptée, de la classe qui définie cette méthode.
    • // 1°
    • // assigne un écouteur d’évènements basique à un composant nommé composantX
    • composantX.addActionListener(new java.awt.event.ActionListener() {
    • public void actionPerformed(ActionEvent e) {
    • // quand une action sera captée, on devra exécuter la méthode ci-dessous, implémentée dans
    • // la partie 2°
    • composantX_actionPerformed(e);
    • }
    • });

    •    // 2°
    •    void jButton1_actionPerformed(ActionEvent e) {
    •    // code à insérer
    •      }
    •    }

      • // 3°
      • class nomDeLaClasse implements java.awt.event.ActionListener {
      • NomDeLaClasseOuSeTrouveLeComposant adaptee;
      • nomDeLaClasse(NomDeLaClasseOuSeTrouveLeComposant adaptee) {
      • this.adaptee = adaptee;
      • }
      • public void actionPerformed(ActionEvent e) {
      • adaptee.jButton1_actionPerformed(e);
      • }
      • }
Le code présenté ci-dessus est exactement celui crée par JBuilder, d’autres manières de capter les actions de
l’utilisateur et d’appeler un code en réponse seront étudiées plus tard. Si vous possédez JBuilder, il suffit de
double-cliquer sur un composant en mode Conception pour que soit automatiquement généré le code ci-dessus.




Construction d’une UI
Cette partie a pour fonction de créer une application à l’aide de Swing.

         1) Comment sera le programme ? / Que fera t-il ?
             Le programme sera une petite fenêtre avec un bouton et un label. Au clic sur le bouton, le texte
             « Hello World again ! » s’affichera dans le label. Pour cela, l’application sera composée de 2
             classes : une définissant l’interface, une autre contenant la méthode main() et appelant l’autre
             classe.


         2) Interface graphique
                  1) Créer la première classe en la définissant comme un cadre
                  2) Ajouter les composants
                  3) Créer le gestionnaire d’événement pour le bouton


                  1)
•   public class Cadre1 extends JFrame { // définission du cadre
          •   public Cadre1() { // méthode constructeur
          •   }
          •   }

     2)
          •   jLabel1.setText(""); // création du label
          •   jButton1.setText("Cliquez ICI !"); // création du bouton
          •   this.getContentPane().setLayout(flowLayout1); // mise en place d’un layout
          •   this.getContentPane().add(jLabel1, null); // ajout du label du cadre
          •   this.getContentPane().add(jButton1, null); // ajout du bouton au cadre

     3)
          •   // 1° partie: “quand une action est effectuée sur le bouton, appeler la méthode
          •   // JButton1_actionPerformed()“
          •   jButton1.addActionListener(new java.awt.event.ActionListener() {
          •   public void actionPerformed(ActionEvent e) {
          •    jButton1_actionPerformed(e);
          •    }
          •    });


          •   // 2° partie: création de la méthode jButton1_actionPerformed()
          •   void jButton1_actionPerformed(ActionEvent e) {
          •   jLabel1.setText(“Hello World again !”); // afficher ce texte dans le label
          •   }


3) Classe principale
          •   public class Application {
          •   //Construire l'application
          •   public Application() {
          •   Cadre1 frame = new Cadre1();
          •   }
          •   //Méthode principale
          •   public static void main(String[] args) {
          •   new Application();
          •   }

Contenu connexe

En vedette

Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
ENSET, Université Hassan II Casablanca
 
Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
ENSET, Université Hassan II Casablanca
 
Higiene y seguridad industrial andres
Higiene y seguridad industrial andresHigiene y seguridad industrial andres
Higiene y seguridad industrial andres
Andres Mendez
 
Antivirus
AntivirusAntivirus
Antivirus
DSR021992
 
Curso escritura académica san marcos 2015
Curso escritura académica san marcos 2015Curso escritura académica san marcos 2015
Curso escritura académica san marcos 2015
mary león flores
 
Practica 13
Practica 13Practica 13
Practica 13
akkg
 
Aide evrp
Aide evrpAide evrp
Aide evrp
Philippe Porta
 
Tema 3: Crecer con salud
Tema 3: Crecer con saludTema 3: Crecer con salud
Tema 3: Crecer con salud
faliyo13
 
Esteban tics final
Esteban tics finalEsteban tics final
Esteban tics final
esteban23598
 
Caso - Saxo Bank
Caso - Saxo BankCaso - Saxo Bank
Caso - Saxo Bank
Informatica Latinoamerica
 
Administracion
AdministracionAdministracion
Administracion
SthefanyHG
 
запеченное мясо
запеченное мясозапеченное мясо
запеченное мясоmiosha91
 
2012 Graduation
2012 Graduation2012 Graduation
2012 Graduationsgramich
 
Presentacion rosrainis ellen lara garcia
Presentacion rosrainis  ellen lara garciaPresentacion rosrainis  ellen lara garcia
Presentacion rosrainis ellen lara garcia
rosrainis2006
 
Questionnaire Banque Nationale Maladies Rares
Questionnaire Banque Nationale Maladies RaresQuestionnaire Banque Nationale Maladies Rares
Questionnaire Banque Nationale Maladies Rares
isyrare
 
Relojes de moda para esta navidad
Relojes de moda para esta navidadRelojes de moda para esta navidad
Relojes de moda para esta navidad
Gabriel Puente
 
Poitou charentes JUG - Elasticsearch
Poitou charentes JUG - ElasticsearchPoitou charentes JUG - Elasticsearch
Poitou charentes JUG - Elasticsearch
David Pilato
 
Présentation planning d'accouplement web PHF
Présentation planning d'accouplement web PHFPrésentation planning d'accouplement web PHF
Présentation planning d'accouplement web PHF
PrimHolsteinFrance
 
Caso - VIVO
Caso - VIVOCaso - VIVO

En vedette (20)

Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce  Basé sur Spring IOC MVC Security JPA HibernateSite JEE de ECommerce  Basé sur Spring IOC MVC Security JPA Hibernate
Site JEE de ECommerce Basé sur Spring IOC MVC Security JPA Hibernate
 
Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)Développement d'un site web de E-Commerce avec PHP (Première Partie)
Développement d'un site web de E-Commerce avec PHP (Première Partie)
 
Higiene y seguridad industrial andres
Higiene y seguridad industrial andresHigiene y seguridad industrial andres
Higiene y seguridad industrial andres
 
Antivirus
AntivirusAntivirus
Antivirus
 
Curso escritura académica san marcos 2015
Curso escritura académica san marcos 2015Curso escritura académica san marcos 2015
Curso escritura académica san marcos 2015
 
Practica 13
Practica 13Practica 13
Practica 13
 
Aide evrp
Aide evrpAide evrp
Aide evrp
 
Tema 3: Crecer con salud
Tema 3: Crecer con saludTema 3: Crecer con salud
Tema 3: Crecer con salud
 
Excel.pdf 1
Excel.pdf 1Excel.pdf 1
Excel.pdf 1
 
Esteban tics final
Esteban tics finalEsteban tics final
Esteban tics final
 
Caso - Saxo Bank
Caso - Saxo BankCaso - Saxo Bank
Caso - Saxo Bank
 
Administracion
AdministracionAdministracion
Administracion
 
запеченное мясо
запеченное мясозапеченное мясо
запеченное мясо
 
2012 Graduation
2012 Graduation2012 Graduation
2012 Graduation
 
Presentacion rosrainis ellen lara garcia
Presentacion rosrainis  ellen lara garciaPresentacion rosrainis  ellen lara garcia
Presentacion rosrainis ellen lara garcia
 
Questionnaire Banque Nationale Maladies Rares
Questionnaire Banque Nationale Maladies RaresQuestionnaire Banque Nationale Maladies Rares
Questionnaire Banque Nationale Maladies Rares
 
Relojes de moda para esta navidad
Relojes de moda para esta navidadRelojes de moda para esta navidad
Relojes de moda para esta navidad
 
Poitou charentes JUG - Elasticsearch
Poitou charentes JUG - ElasticsearchPoitou charentes JUG - Elasticsearch
Poitou charentes JUG - Elasticsearch
 
Présentation planning d'accouplement web PHF
Présentation planning d'accouplement web PHFPrésentation planning d'accouplement web PHF
Présentation planning d'accouplement web PHF
 
Caso - VIVO
Caso - VIVOCaso - VIVO
Caso - VIVO
 

Similaire à Swing

Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Farouk Mezghich
 
Java- LT informatique
Java-  LT informatiqueJava-  LT informatique
Java- LT informatique
HassanChaaban
 
Introduction aux interfaces.
Introduction aux interfaces.Introduction aux interfaces.
Introduction aux interfaces.
Jean-Baptiste Yunès
 
JavaSwing.pdf
JavaSwing.pdfJavaSwing.pdf
JavaSwing.pdf
imanebirjmel
 
Programmation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.pptProgrammation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.ppt
bouchakyahya0
 
5.ateliers avancés
5.ateliers avancés5.ateliers avancés
5.ateliers avancés
Chaikhani Ibtissam
 
Utilisation de ZK avec Java - Retour d’expérience
Utilisation de ZK avec Java - Retour d’expérienceUtilisation de ZK avec Java - Retour d’expérience
Utilisation de ZK avec Java - Retour d’expérience
louschwartz
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menus
Lilia Sfaxi
 
Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'Android
Houssem Lahiani
 
Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'Android
Houssem Lahiani
 
TP_1.pdf
TP_1.pdfTP_1.pdf
TP_1.pdf
FethiBenYahia1
 
Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)
MOHAMMED MOURADI
 
Les composants de Swing
Les composants de SwingLes composants de Swing
Les composants de Swing
Jean-Baptiste Yunès
 
4-2-java swing.ppt
4-2-java swing.ppt4-2-java swing.ppt
4-2-java swing.ppt
Hadjer Kaddour
 
00 swing
00 swing00 swing
00 swing
Mohamed Mlika
 
Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
ENSET, Université Hassan II Casablanca
 

Similaire à Swing (20)

Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)
 
Java- LT informatique
Java-  LT informatiqueJava-  LT informatique
Java- LT informatique
 
Introduction aux interfaces.
Introduction aux interfaces.Introduction aux interfaces.
Introduction aux interfaces.
 
JavaSwing.pdf
JavaSwing.pdfJavaSwing.pdf
JavaSwing.pdf
 
Programmation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.pptProgrammation Evenementielle 1 object.ppt
Programmation Evenementielle 1 object.ppt
 
5.ateliers avancés
5.ateliers avancés5.ateliers avancés
5.ateliers avancés
 
Eclipse
EclipseEclipse
Eclipse
 
Utilisation de ZK avec Java - Retour d’expérience
Utilisation de ZK avec Java - Retour d’expérienceUtilisation de ZK avec Java - Retour d’expérience
Utilisation de ZK avec Java - Retour d’expérience
 
Android-Tp3: fragments et menus
Android-Tp3: fragments et menusAndroid-Tp3: fragments et menus
Android-Tp3: fragments et menus
 
Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'Android
 
Cycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'AndroidCycle de vie d'activité Android et les composant d'Android
Cycle de vie d'activité Android et les composant d'Android
 
Presentation de gwt maven
Presentation de  gwt mavenPresentation de  gwt maven
Presentation de gwt maven
 
TP_1.pdf
TP_1.pdfTP_1.pdf
TP_1.pdf
 
Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)Calculatrice scientifique en JAVA(AWT)
Calculatrice scientifique en JAVA(AWT)
 
Les composants de Swing
Les composants de SwingLes composants de Swing
Les composants de Swing
 
Tuto bada
Tuto badaTuto bada
Tuto bada
 
Tp plaque
Tp plaqueTp plaque
Tp plaque
 
4-2-java swing.ppt
4-2-java swing.ppt4-2-java swing.ppt
4-2-java swing.ppt
 
00 swing
00 swing00 swing
00 swing
 
Cours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweightCours design pattern m youssfi partie 7 facade bridge flyweight
Cours design pattern m youssfi partie 7 facade bridge flyweight
 

Swing

  • 1. SWING : principes de base Introduction Swing est la 2nd bibliothèque de classes, après AWT, qui permet de créer une Interface Utilisateur et de la gérer. La procédure de construction d’une interface Swing est similaire à celle d’AWT : créer un cadre, des composants dans ce cadre, une mise en page pour ces composants, des méthodes en réponse aux actions de l’utilisateur. Il n’est pas possible de faire le tour de Swing en un seul chapitre, c’est pourquoi ce chapitre s’intéresse seulement aux principes de base et à la construction d’une UI simple. Différences entre Swing et AWT Du côté de l’utilisateur, la différence est majeurs : l’apparence des composants est totalement différente (bien que celle-ci soit paramétrable). Du côté du concepteur, Swing présente plus de composants qu’AWT, ces composants commencent par un J (ex : JButton, JLabel…), la gestion des évènements est complètement différente. Les layouts, eux, restent les mêmes. Composants Comme précédemment dit, les composants sont presque les mêmes que ceux d’AWT. Pour une description des composants et plus d’informations, se reporter au chapitre sur AWT. JButton JLabel JTextArea JTextField JRadioButton JCheckBox JPasswordField JComboBox JList JScrollBar D’autres composants avancés seront traités dans les chapitres suivants concernant Swing. Conteneurs Les conteneurs sont les objets dans lesquels sont incorporés les composants de l’UI. Un cadre (JFrame) est un conteneur. On peut citer : JFrame, JDialog (c’est un peu différent…), JPanel, JScrollPane, JTabbedPane, JSplitPane… JFrame, JPanel : classiques, une JFrame est un JPanel dans un cadre spécifique à l’environnement (le cadre contenant par exemple la X pour fermer la fenêtre) JDialog : boîte de dialogue qui surgit en plein milieu de l’écran (les utilisateurs de Windows connaissent sûrement celle de type Warning qui contient les habituelles Fatal Errors) JScrollPane : barres de défilement. Ajouter un JScrollPane à votre JFrame, ajoutez ensuite un JTextArea (ou autre composant nécessitant des barres de défilement) l’intérieur de ce JScrollPane. JtabbedPane : cadre à onglets
  • 2. Gestion d’évènements Les gestionnaires d’événement permettent d’intercepter les actions des utilisateurs et d’assigner au programme un comportement adapté en réponse. Il existe de nombreuses manières de gérer les évènements. Ce chapitre propose une manière classique, c’est celle qui est utilisée par défaut par JBuilder. Elle se met en œuvre en 3 temps : création d’un « écouteur » d’actions qui attend et capte les actions de l’utilisateur, d’une méthode qui met en œuvre la réponse adaptée, de la classe qui définie cette méthode. • // 1° • // assigne un écouteur d’évènements basique à un composant nommé composantX • composantX.addActionListener(new java.awt.event.ActionListener() { • public void actionPerformed(ActionEvent e) { • // quand une action sera captée, on devra exécuter la méthode ci-dessous, implémentée dans • // la partie 2° • composantX_actionPerformed(e); • } • }); • // 2° • void jButton1_actionPerformed(ActionEvent e) { • // code à insérer • } • } • // 3° • class nomDeLaClasse implements java.awt.event.ActionListener { • NomDeLaClasseOuSeTrouveLeComposant adaptee; • nomDeLaClasse(NomDeLaClasseOuSeTrouveLeComposant adaptee) { • this.adaptee = adaptee; • } • public void actionPerformed(ActionEvent e) { • adaptee.jButton1_actionPerformed(e); • } • } Le code présenté ci-dessus est exactement celui crée par JBuilder, d’autres manières de capter les actions de l’utilisateur et d’appeler un code en réponse seront étudiées plus tard. Si vous possédez JBuilder, il suffit de double-cliquer sur un composant en mode Conception pour que soit automatiquement généré le code ci-dessus. Construction d’une UI Cette partie a pour fonction de créer une application à l’aide de Swing. 1) Comment sera le programme ? / Que fera t-il ? Le programme sera une petite fenêtre avec un bouton et un label. Au clic sur le bouton, le texte « Hello World again ! » s’affichera dans le label. Pour cela, l’application sera composée de 2 classes : une définissant l’interface, une autre contenant la méthode main() et appelant l’autre classe. 2) Interface graphique 1) Créer la première classe en la définissant comme un cadre 2) Ajouter les composants 3) Créer le gestionnaire d’événement pour le bouton 1)
  • 3. public class Cadre1 extends JFrame { // définission du cadre • public Cadre1() { // méthode constructeur • } • } 2) • jLabel1.setText(""); // création du label • jButton1.setText("Cliquez ICI !"); // création du bouton • this.getContentPane().setLayout(flowLayout1); // mise en place d’un layout • this.getContentPane().add(jLabel1, null); // ajout du label du cadre • this.getContentPane().add(jButton1, null); // ajout du bouton au cadre 3) • // 1° partie: “quand une action est effectuée sur le bouton, appeler la méthode • // JButton1_actionPerformed()“ • jButton1.addActionListener(new java.awt.event.ActionListener() { • public void actionPerformed(ActionEvent e) { • jButton1_actionPerformed(e); • } • }); • // 2° partie: création de la méthode jButton1_actionPerformed() • void jButton1_actionPerformed(ActionEvent e) { • jLabel1.setText(“Hello World again !”); // afficher ce texte dans le label • } 3) Classe principale • public class Application { • //Construire l'application • public Application() { • Cadre1 frame = new Cadre1(); • } • //Méthode principale • public static void main(String[] args) { • new Application(); • }