0% ont trouvé ce document utile (0 vote)
28 vues41 pages

Cours Part 1 1

Transféré par

Ilhame Hizoune
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
28 vues41 pages

Cours Part 1 1

Transféré par

Ilhame Hizoune
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 41

Introduction

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Introduction

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Introduction
La conception des classes Swing s'appuie assez librement sur l'architecture
MVC (Modèle/Vue/Contrôleur).

Cette architecture est apparue dans le contexte du langage Smalltalk (1980).


On y distingue pour un composant:

–Le Modèle qui gère et stocke les données (abstraites).

–Une (ou des) Vue(s)qui implante(nt) une représentation (visuelle) à partir du


modèle.

–Le Contrôleur qui se charge des interactions avec l'utilisateur et modifie le


modèle (et la ou les vues).

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Introduction

Interface graphique

Dans une interface graphique, on imbrique généralement trois niveaux d’objets


graphiques
 Le conteneur principal :
• permet d’encapsuler toutes les entités des deux autres niveaux (par
exemple une fenêtre JFrame)
 Un composant-conteneur intermédiaire :
• aussi un conteneur qui se charge de regrouper en son sein des
composants atomiques (par exemple un panneau JPanel)
 Un composant atomique : appelé aussi widgets
• Il s’agit d’éléments de base :
 boutons, zones de saisie, liste de choix déroulant…
• Ces composants sont ajoutés dans le conteneur courant en
invoquant une méthode add

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Introduction
Arborescence des packages SWING

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JFrame Les fenêtres
La fenêtre principale : JFrame
• Les JFrame sont l'équivalent des fenêtres. Elles ont un titre, une
dimension, un aspect et des éléments graphique affichés à l'intér
ieur.

• Les JFrame font partie du package javax.swing.

• Pour créer une fenêtre graphique, on dispose, dans le paquetage


nommé javax.swing, d’une classe standard nommée JFrame,
possédant un constructeur sans arguments.

• Par exemple, avec :

• JFrame fen = new JFrame() ;

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JFrame Les fenêtres
La fenêtre principale : JFrame
Mais, on ne se limite pas à ça car rien n’apparaîtra à l’écran
On utilisera alors :
• fen.setVisible(true);
• •pour rendre visible la fenêtre (true pour visible et false
pour caché)
• fen.setSize(x, y);
• •pour fixer la taille de la fenêtre à son ouverture
• x: taille horizontale en pixel
• y: taille verticale en pixel

fen.setTitle("Ma première fenêtre");


•pour donner un titre à la fenêtre

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JFrame Les fenêtres
Notre Premier Exemple :

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JFrame Les fenêtres
Notre Premier Exemple :

On peut aussi-en faire une classe et l’utiliser pour créer des


objets :

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JFrame Les fenêtres
Notre Premier Exemple :

Actions sur les caractéristiques d’une fenêtre

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JFrame Les fenêtres
Notre Premier Exemple :

Actions sur les caractéristiques d’une fenêtre

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JPanel
Notre Premier Exemple :

• Pour ajouter des objets à une JFrame, on a besoin de Jpanel

• Un JPanel est en quelque sorte une boite dans laquelle on p


eut placer des composants de l'interface graphique.

• Un JPanel sert uniquement à stocker les objets


• Un Jpanel n'a pas une apparence propre et ne peut pas être
utilisé comme fenêtre autonome.

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JPanel

• Exemple :

• Panel p = new Panel();


• Jlabel b = new Jlabel(“Bjr”);
• p.add(b);
• Fen.add(p);

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JPanel
• Exemple :

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestionnaire de positionnement.

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestionnaire de positionnement.
Le FlowLayout

• Ce premier gestionnaire est certainement le plus utilisé et le plus simple à m


anipuler.

• Des attributs de la classe FlowLayout sont préfédinis :


• FlowLayout.LEFT, FlowLayout.CENTER, FlowLayout.RIGHT .

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestionnaire de positionnement.
Le BorderLayout

• Ce second gestionnaire permet d'opérer une division de l'espace utilisable a


u sein d'un conteneur. Par opposition au FlowLayout, le nombre de zones ut
ilisable par cette stratégie est figé : un BorderLayout divise l'espace utilisabl
e en cinq zones :
• BorderLayout.NORTH
• BorderLayout.SOUTH
• BorderLayout.WEST
• BorderLayout.EAST
• BorderLayout.CENTER

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestionnaire de positionnement.

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Jbutton

• JButton est un composant de Java Swing.

• La classe JButton est utilisée pour créer un bouton étiqueté ayant une
implémentation indépendante de la plateforme.

• L’application entraîne une action lorsque le bouton est cliqué. Il peut être
configuré pour avoir différentes actions, en utilisant « Event Listener ».
JButton hérite de la classe AbstractButton.

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Jbutton

• JButton est un composant de Java Swing.

• La classe JButton est utilisée pour créer un bouton étiqueté ayant une
implémentation indépendante de la plateforme.

• L’application entraîne une action lorsque le bouton est cliqué. Il peut être
configuré pour avoir différentes actions, en utilisant « Event Listener ».
JButton hérite de la classe AbstractButton.

• Exemple :
• Jbutton btn = new Jbutton(‘’Entrer’’);

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Jbutton

• Les méthodes couramment utilisées de la classe JButton sont :

• void setText(String s) : Il est utilisé pour définir le texte spécifié sur le


bouton.
• String getText() : Il est utilisé pour renvoyer le texte du bouton.
• void setEnabled(boolean b) : Il est utilisé pour activer ou désactiver le
bouton.
• void setIcon(Icon b) : Il est utilisé pour définir l’icône spécifiée sur le
bouton.
• Icon getIcon() : Il est utilisé pour récupérer l’icône du bouton
• void addActionListener(ActionListener a) : Il est utilisé pour ajouter
action listener à cet objet.

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JRadioButton

• Nous utilisons la classe JRadioButton pour créer un bouton radio. Le


bouton radio permet de sélectionner une option parmi plusieurs. Il est
utilisé pour remplir des formulaires, des documents d'objectifs en ligne et
des quiz.

• Nous ajoutons les boutons radio dans un ButtonGroup afin de ne pouvoir


sélectionner qu'un seul bouton radio à la fois. Nous utilisons la classe
"ButtonGroup" pour créer un groupe de boutons et y ajouter des boutons
radio.

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JRadioButton
• Exemple :

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JComboBox
Un JComboBox est un composant d'interface utilisateur fourni par la
bibliothèque Swing de Java, qui permet à l'utilisateur de sélectionner un
élément à partir d'une liste déroulante.

Cela peut être particulièrement utile lorsque vous souhaitez permettre à


l'utilisateur de choisir parmi plusieurs options prédéfinies.

String[] choix = {" ","Option 1", "Option 2", "Option 3", "Option 4"};
JComboBox<String> comboBox = new JComboBox<>(choix);

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JComboBox
• Exemple :

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


JCheckBox

JCheckBox représente une case à cocher, qui peut être sélectionnée ou non.
Ses principales propriétés sont le texte qu'elle affiche (text) et son état
(selected).

JCheckBox case1 = new JCheckBox(“Choix x ");

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Quelques composants de base

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Quelques composants de base

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évènements

• Les composants Swing créent des événements, soit directement, soit par
une action de l'utilisateur sur le composant. Ces événements peuvent
déclencher une action exécutée par d'autre(s) composant(s).

• Un composant qui crée des événements est appelé source. Le composant


source délègue le traitement de l'événement au composant auditeur.

• Un composant qui traite un événement est appelé auditeur (listener)

• Un composant auditeur doit s'inscrire auprès du composant source des


événements qu'il veut traiter.

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évènements

La gestion des événements est essentielle dans les applications Java
Swing pour répondre aux interactions de l'utilisateur.

• Écouteurs d'événements : Les événements sont générés lorsque


l'utilisateur interagit avec les composants Swing, tels que les boutons,
les cases à cocher, les champs de texte, etc. Pour gérer ces événements,
vous devez ajouter des écouteurs d'événements aux composants. Les
écouteurs d'événements sont des classes qui implémentent des
interfaces spécifiques telles que ActionListener, MouseListener,
ItemListener, etc., en fonction du type d'événement que vous souhaitez
gérer.

• Ajout d'écouteurs : Pour ajouter un écouteur à un composant, vous


utilisez des méthodes telles que addActionListener, addMouseListener,
addItemListener, etc., en fonction de l'événement que vous souhaitez
gérer

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évènements

Swing définit un grand nombre de types d'auditeurs, en fonction du type


d'événement qu'ils écoutent. Les principaux types d'auditeurs sont :

–les auditeurs d'action (action listeners),


– les auditeurs de souris (mouse listeners),
– les auditeurs de menu (menu listeners),
– les auditeurs de clavier (key listeners),
– les auditeurs de cible de saisie (focus listeners).

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évènements
• ActionListener
• L'interface (fonctionnelle) ActionListener représente un
auditeur à l'écoute des événements de type « action ». Ces
événements se produisent p.ex. lorsque l'utilisateur clique
sur un bouton, sélectionne un menu ou presse Entrée
dans un champ textuel.

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évènements

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évènements
• ActionListener
• Exemple 1

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évènements
• Exercice 1

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évènements
• Exercice 1

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évènements
• ActionListener
• Exemple 2

• Il est possible d'enregistrer un même listener pour


plusieurs composants

• getSource() permet d'obtenir le composant ayant créé


l'évènement

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évènements
• ActionListener
• Exemple 2

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évenements
• Exemple 3 : JRadioButton Event

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évenements
• Exemple 4 : JCombobox Event

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI


Gestion des évènements
• Exercice 1

Ecrire une application java/Swing permettant la conversion euros -> Dirhams


et inversement. L’apparence de cette application est donnée par la figure
suivante :

Sup MTI Oujda 2023/2024 Pr . Yassine AZIZI

Vous aimerez peut-être aussi