Interface Graphique en Java Dans ce tp nous abordons les Interfaces Graphique e
Interface Graphique en Java Dans ce tp nous abordons les Interfaces Graphique et, par extension, la programmation événementielle. Le langage Java propose différentes bibliothèques pour programmer des interfaces graphiques, mais dans ce tp, nous utiliserons essentiellement le package javax.swing. Ce tp vous permettra d'apprendre à utiliser l'objet JFrame, présent dans le package javax.swing. Vous serez alors capables de créer une fenêtre, de définir sa taille, etc. En réalité, une fenêtre n'est qu'une multitude de composants posés les uns sur les autres et que chacun possède un rôle qui lui est propre. Avec un NetBeans E.D.I., la réalisation d'une interface graphique se décompose en deux parties: La partie design: c'est la réalisation du rendu visuel de l'interface. Cette partie ne nécessite aucune programmation. Le développeur sélectionne les composants qu'il veut utiliser dans des palettes de composants et les dépose sur la fenêtre. Il peut ensuite modifier leurs propriétés (position, dimension, couleur par exemple). La partie programmation évènementielle: c'est l'écriture des gestionnaires d'évènement ou autrement dit l'écriture des procédures évènementielles. C'est ce qui permettra de rendre l'interface fonctionnelle. C'est ici que des notions de programmation objet vont intervenir, car une fenêtre et ses composants sont représentés par des classes. 1. Le mode design La création d'une application avec interface graphique passe par l'adjonction d'une fenêtre (via New JFrame Form). Netbeans génère automatiquement un fichier source java de même nom que la fenêtre contenant la définition d'une sous-classe de JFrame (la classe swing représentant les fenêtres) que nous avons appelée la classe fenêtre. Une application peut comporter plusieurs fenêtres et donc plusieurs classes fenêtre. Le fichier source représentant une classe fenêtre peut être visualisé en mode Source ou en mode Design. En mode Source, l'interface graphique de Netbeans est adaptée à l'édition du code source. En mode Design, elle est adaptée au design de la fenêtre et de ses composants. Fenêtres de NetBeans en mode Design Voici l'aspect de l'interface graphique de NetBeans en mode Design: On y trouve: en haut à gauche, la fenêtre Projects. Cette fenêtre liste les différents projets ouverts sous Netbeans. Elle permet de modifier les propriétés générales d'un projet, d'ajouter ou de supprimer un fichier source à un projet donné, etc... au centre: la fenêtre de l'application avec ses composants. en bas à gauche la fenêtre Navigator: elle liste tous les composants de l'application. en haut à droite: la palette des composants. C'est à partir de cette palette que l'on peut sélectionner différents composants et les déposer sur la fenêtre. en bas à droite: la fenêtre Properties: elle permet d'afficher les propriétés d'un composant particulier et éventuellement, de les modifier manuellement. 2. Modification des propriétés d'un composant Pour modifier les propriétés d'un composant, il faut d'abord le sélectionner, soit en cliquant sur ce composant dans la fenêtre de l'application, soit en cliquant sur son nom dans la fenêtre Navigator. La fenêtre Properties fait alors apparaitre les différentes propriétés de ce composant pouvant être modifiées. - Modification du nom d'un composant Pour améliorer la lisibilité du code, il est préférable de ne pas garder les noms de composants générés automatiquement par NetBeans. Pour cela, faite un clic droit sur le composant et sélectionnez Change Variable Name. 3. Fenêtres Pour une interface graphique, la composante principale est la fenêtre présentée dans la classe JFrame, qui aide le développeur d’avoir ce qu’il veut, en utilisant NetBeans : - Créer un projet Java, - Un clic droit avec le bouton de la souris sur le projet, et on choisit New après JFrame Form, pour créer une nouvelle classe héritée de JFrame , on obtient l’interface suivante : - - En bas à gauche : on trouve la liste des composantes dans notre fenêtre (dans notre exemple : il n’ y a que JFrame), - A droite en haut : on trouve une palette des principales composantes qu’on peut utiliser dans notre fenêtre (boutons,… ) - A droite en bas : on trouve la liste des principales propriétés du composant sélectionné. - Pour modifier les propriétés, on clique avec le bouton droit de la souris sur le composant qu’on veut modifier et on choisit propriétés, on aura la petite fenêtre suivante : - Les principales propriétés pour un JFrame sont : a- defaultCloseOperation : gère ce qu’elle fait la fenêtre lors de sa fermeture. - Par défaut, sa valeur est EXIT_ON_CLOSE. Avec cette valeur, la fermeture de la fenêtre provoque l'arrêt de l'application. - Pour éviter que la fenêtre se ferme, sélectionnez la valeur DO_NOTHING. Mais dans ce cas, il deviendra impossible de quitter l'application !!!! On doit définir un gestionnaire d'évènement comme nous allons le voir par la suite. b- title : donne un titre à notre fenêtre. c- enabled : dit si la fenêtre est active ou bien non. d- maximumSize : donne la taille maximale de la fenêtre. e- minimumSize : donne la taille minimale de la fenêtre. f- preferredSize : donne la taille préférable de la fenêtre. g- resizable : permet le redimensionnement de la fenêtre ou pas. - Evénements - Un clic sur le bouton droit de la souris sur le JFrame, on remarque qu’ont peut ajouter des composantes tant que des événements qui s’exécutent pour une condition précis, de cette façon les composantes communiquent entre eux et avec d’autres programmes facilement. - Exemple Faire un click droit sur la fenêtre pour faire apparaître le menu contextuel. Et choisir ensuite : - Events/Mouse/mouseClicked. Cela signifie que nous désirons attacher un événement lorsque l’évènement click se produira sur le bouton. - Automatiquement, NetBeans vous propose de remplir le code qui sera associé à l’événement Click sur le bouton. Le nom de la procédure est clair de ce point de vue. - Je vous propose le code suivant : System.exit(0); 4. Conteneurs Une composante qui contient d’autres composantes, on prend l’exemple d’un panneau (Panel), - Ses principales propriétés sont : - background : permet le changement de la couleur de l’arrière plan du conteneur. - border : permet la modification de la bordure du conteneur. Une barre d'outils (classe JToolBar) est simplement un conteneur: c'est à dire un composant destiné à contenir d'autres composants. On y met généralement des boutons libellés par des icones, c'est à dire des boutons sur lesquels figurent une image de petite dimension. Les icones sont généralement de petites images carrées (typiquement 32X32, 24X24, ...). 5. Les boutons radio Les boutons radio sont en quelque sorte des cases à cocher qui s'excluent mutuellement à l'intérieur d'un même groupe. Lorsqu'un bouton radio est coché les autres boutons du groupe sont automatiquement décochés. Les boutons radios sont représentés par la classe JRadioButton et les groupes de boutons par la classe: ButtonGroup. a. Coté design Un bouton radio doit être obligatoirement associé à un groupe de boutons. Avant de déposer vos boutons radio, commencez par déposer le (ou les) groupe(s) de boutons sur la fenêtre de l'application. Le groupe de bouton associé à un bouton radio donné est défini dans la propriété buttonGroup de ce dernier. L'étiquette d'un bouton radio est définie dans sa propriété text. b. Gestionnaire d'évènement Le fait de cocher ou décocher le bouton radio génère un évènement de type ActionPerformed. Pour définir un gestionnaire pour cet évènement, faites un double clic sur le bouton radio. Le nom de la procédure évènementielle générée par NetBeans est composé du nom bouton radio suivi de ActionPerformed. c. Méthodes utiles isSelected() : retourne un booléen : true si le bouton radio est coché, false sinon. 6. Les combo box La combo box (classe JComboBox) est un composant permettant de représenter une liste de choix importante de manière très compacte. Lorsqu'elle est non déployée, elle prend la même place qu'un champ de texte. Voici, un combo box non déployée: - Elle ne se déploie que lorsque l'utilisateur l'utilise pour sélectionner un choix. - De plus, si le nombre de choix est important, une barre de défilement verticale permet d'atteindre des choix non visibles au moment du déploiement. a. Coté design Pour définir les entrées d'une combo box à la main, utilisez la propriété model. En cliquant sur les ... à droite de la propriété vous ouvrez un éditeur qui vous permet de saisir les intitulés des différents choix. b. Gestionnaire d'évènement Le fait de sélectionner une entrée dans une combo box génère un évènement de type ActionPerformed. Pour définir un gestionnaire pour cet évènement, faites un double clic sur le combo box. Le nom de la procédure évènementielle générée par NetBeans est composé du nom de le combo box suivi de ActionPerformed. c. Méthodes utiles : plusieurs méthodes utiles par exemple : getSelectedIndex (): retourne la position de l'entrée sélectionnée par l'utilisateur. Si aucune entrée n'est sélectionnée, le résultat est -1. Le résultat retourné est de type int. getSelectedItem (): retourne l'entrée de la combo box sélectionnée par l'utilisateur. Le résultat retourné est de type Object. Pour le convertir en chaine de caractères, il faudra donc lui appliquer la méthode toString. 7. Les boutons (JButton) Les boutons sont des composantes uploads/S4/ tp1-poo.pdf
Documents similaires
-
18
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Oct 26, 2022
- Catégorie Law / Droit
- Langue French
- Taille du fichier 1.2073MB