WindowBuilder

Création d'un projet WindowBuilder sous Eclipse

  • File / New / Project... -> ouverture de la fenêtre New Project : Select a Wizard

    • WindowBuilder / SWT Designer / SWT/JFace Java Project -> création du projet

Une fois dans le projet, création d'une fenêtre principale

  • Clic droit sur src puis New / Other... -> ouverture de la fenêtre New : Select a Wizard

    • WindowBuilder / Swing Designer / Application Window -> création d'une première classe MainWB

  • Passer en mode "Design" pour ajouter des éléments dans la fenêtre principale ou éditer ses caractéristiques

    • Lui donner un background rouge

Autre exemple : création d'une fenêtre secondaire

  • Clic droit sur src puis New / Other... -> ouverture de la fenêtre New : Select a Wizard

    • WindowBuilder / Swing Designer / JFrame -> création d'une seconde classe SecondWindow

  • Passer en mode "Design" pour ajouter des éléments dans cette seconde fenêtre ou éditer ses caractéristiques

    • Lui donner un background vert

Ajout d'une référence à une instance de SecondWindow dans les attributs de MainWB

  • private SecondWindow second ;

Création de cette instance dans la méthode private void initialize ()

  • second = new SecondWindow () ;

Changement du LayoutManager de la fenêtre principale :

  • En mode Design, cliquer sur SpringLayout puis sur le fond de la fenêtre principale

Ajout d'un premier bouton intitulé Open dans la classe MainWB pour faire apparaître la seconde fenêtre

  • Cliquer sur JButton puis sur le fond de la fenêtre principale à l'endroit où placer ce bouton

  • Changer le texte du bouton en Open

  • Renommer ce bouton en openButton

  • Double-cliquer sur ce bouton : WindowBuilder détecte l'action et propose d'associer une action à un clic sur le bouton :

    • Cela a ajouté un ActionListener sur le bouton, doté d'une méthode actionPerformed, y ajouter du code :

      • second.setVisible (true) ;

Ajout d'un second bouton Close dans la classe MainWB pour faire disparaître la seconde fenêtre

  • Procéder de la même manière, en renommant le bouton closeButton et en lui faisant afficher Open, et ajouter cette fois :

    • second.setVisible (false) ;

Au lancement du projet une fenêtre rouge s'affiche et l'appui sur les boutons Open et Close permet de faire apparaître et disparaître la seconde fenêtre verte...

Pour donner davantage d'informations à l'utilisateur sur le fonctionnement des boutons en leur donnant un comportement dynamique, il faut :

  • Quand la seconde fenêtre apparaît

    • désactiver le bouton Open

      • openButton.setEnabled (false) ;

    • activer le bouton Close

      • closeButton.setEnabled (true) ;

  • Quand la seconde fenêtre disparaît

    • désactiver le bouton Close

      • closeButton.setEnabled (false) ;

    • activer le bouton Open

      • openButton.setEnabled (true) ;

Et bien entendu il faut avoir initialisé correctement ces deux boutons, en particulier il faut que les déclarations des boutons se trouvent avant les déclarations des listeners qui les utilisent...