Découvrir Eclipse

Créer un projet Swing

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Un projet avec Swing n'a rien de particulier du point de vue de l'organisation des fichiers et des répertoires. Découvrez-le maintenant.

Transcription

Dans cette vidéo, nous allons nous intéresser à la création d'un projet sous Eclipse mais un projet Swing, c'est-à-dire un projet qui utilise une IHM client lourd qui est l'IHM valable jusqu'à la version 7 de Java. Je vais créer un nouveau projet, qui sera bien sûr un Java Project que je vais nommer «exercice51», en rapport avec le chapitre. Ce projet «exercice51» est bien sûr un projet Java normal, donc j'ai changé de perspective. Pour créer un projet Swing, il me faut créer une classe principale qui va devenir la fenêtre principale de l'application. On n'est pas obligé de coupler la classe qui contient le «main» avec la classe qui est elle-même la «frame» mais c'est tout à fait possible, donc je ne vais pas me gêner. Pour travailler dans un projet Swing, il faut que vous ayez une classe, par exemple la classe principale, qui hérite de «JFrame». En héritant de «JFrame», vous héritez d'une classe issue d'un package «javax.swing» qui n'apparaît pas dans les imports, donc je vais devoir ajouter «JFrame» dans mes imports ou utiliser le nom pleinement qualifié de la «JFrame» qui est un peu long. Le «main» doit démarrer la fenêtre principale en créant un objet de type principal, donc «Principale p = new Principale», comme ceci, et «p.setvisible(true)». Un projet Swing demande d'instancier la fenêtre principale qui en l'occurrence est aussi la classe principale et donc, en instanciant cette fenêtre principale, on génère en fait un nouveau thread. Si vous mettez une trace à ce niveau-là, vous allez effectivement constater, si je tape «println», que le «main» est terminé alors que la fenêtre est encore flottante. Cela veut dire que la fenêtre vit dans son propre thread, sa propre boucle d'évènements. Une classe qui hérite de «JFrame», il faut lui faire un constructeur afin de mettre en place le contenu de l'IHM. Normalement, vous devez finir le constructeur par l'instruction «pack». Bien sûr, dans cette classe principale héritant de JFrame, vous avez par défaut un «Layout Manager» qui est un «Border Layout». Vous allez par exemple pouvoir créer un bouton, un «JButton». Je vais créer un «JButton» qui va s'appeler «fermer» : «new JButton» avec la ressource chaîne de caractères «fermer», avec un grand «B». Pour rappel, toutes les classes de Swing commencent par «JQuelquechose». «JButton»doit être importé au même titre que la «JFrame». J'ajoute ce bouton «fermer» à la «JFrame», à ma fenêtre principale avec «add». En faisant un «add» avec «fermer», le «JButton» prend la place centrale dans l'IHM, ce qui n'est pas souhaitable. Je vais mettre ce bouton au sud. «BorderLayout» doit bien entendu être importé. Attention, c'est une classe de «java.awt». Comme on le voit, la construction d'un IHM Swing, qui est du pur Java, se fait dans Eclipse exactement de la même façon que n'importe quelle classe Java. Pour ce qui est de la partie réactive de l'IHM, il faudra rajouter un «ActionListener», c'est-à-dire un observateur, appelé «listener» en Java. Il s'agit en fait du pattern «observateur». On rajoute le «listener» qui va donc réagir. L'importation de l'interface «ActionListener» se trouve dans «java.awt.event», donc je vais importer. Il me dit que je n'ai pas implémenté les méthodes, je vais le laisser le faire pour moi. Vous avez vu avec quelle facilité on construit le code sous Eclipse : je laisse Eclipse générer le code pour moi. Dans «ActionPerformed», un «call-back» qui va être déclenché lorsqu'on va cliquer sur «fermer», je vais tout simplement tuer le processus, donc «exit(0)» ira très bien. «System.exit(0)» tue le processus et ferme complètement la fenêtre. Quand j'exécute ma classe principale dans «Run As» et «Java Application», car une application Swing est en fait une Java Application, je clique dessus et j'obtiens cette superbe boîte là-haut. Je vais devoir l'agrandir un peu pour la déplacer. Cette chose, c'est la «JFrame». Les boutons système sont tous prêts et voilà le bouton «fermer». Par contre, avec Swing, quand on place un élément au sud ou au nord, on a un agrandissement naturel de l'élément en largeur mais pas du tout en hauteur, c'est ce qui se passe dans cette IHM. Je peux cliquer sur «fermer» pour faire un système «exit». Vous remarquerez que le bouton rouge ici a disparu. C'est aussi un moyen de tuer l'application. Ce qui se passe parfois avec les IHM, c'est qu'on peut continuer à faire tourner l'application en ayant la fenêtre disparue. Si on veut un éditeur graphique, on pourra aller chercher parmi les composant Eclipse dans le Marketplace des composants qui permettraient de construire l'IHM plus facilement, des composants comme «WindowBuilder». Évidemment, si le composant a changé de nom, je suis embêté. Je vais chercher «Swing», tout simplement. Je vais avoir quelques outils qui me permettront de gérer du Swing. Si on a la possibilité de construire l'IHM en Java, il est bien entendu possible d'aller chercher dans le Marketplace des composants, des plug-ins qui permettraient de réaliser l'IHM de façon graphique et il existe un composant appelé «WindowBuilder» qui permettra, via un éditeur graphique, de gérer cet ensemble d'IHM.

Découvrir Eclipse

Voyez comment réaliser vos projets de développement Java avec Eclipse. Facilitez-vous la vie avec la prise en charge des tests, les composants additionnels, etc.

2h12 (28 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Eclipse Eclipse 4.6
Spécial abonnés
Date de parution :26 juil. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !