Vous êtes sur la page 1sur 42

Java Swing

PARTIE III
Swing : l’interface graphique de java

Réaliser par | CHIHA A.


Email | collegues.prof@gmail.com
Issat Mahdia
A.U| 2020-2021

1
PARTIE III
Swing : l’interface graphique de java

Présentation du Swing La class Jframe Les Panels Composants graph. Les évènements

• HISTORIQUE & DÉF. • PRÉSENTATION • ARCHITECTURE DES • LES BOUTONS • PRÉSENTATION


• INSTALLATION • GETCONTENTPANE() CLASSES PANEL •JButton • Hiérarechie
•Téléchargement • getContentPane() •JRootPane •JCheckBox • TYPES DES
• La classe Container •layeredPane •JRadioButton ÉVÈNEMENTS
•Installation
• Exemple 1 •contentPane • LES CHAMPS DE TEXTE
• CRÉATION DES PROJETS • ActionEvent
• Exemple 2 •menuBar •JTextComponent
•Window application • MouseEvent
• Exemple 3 • EXEMPLES •JTextField
• LE DESIGN • KeyEvent
• LES ÉVÈNEMENTS •JPasswordField
ASSOCIÉES À JFRAME • GESTION DES
•JEditorPane ÉVÈNEMENTS
• Les listener • LES LISTES
DÉROULENTES
•JComboBox
•JListBox
• LES ÉTIQUETES JLABEL
• LES TABLEAUX JTABLE
• LES ARBRES JTREE

2
Java Swing

(Abstract Windowing Toolkit) : Bibliothèque


graphique originale et pratique.
Repose sur les composants graph. du SE. Api presque exclusivement écrite en Java
=> Portabilité.
bonnes performances. => Des fonctionnalités avancées,
Inconvénients => Possibilité d'étendre les composants
=> Mature, éprouvée et parfaitement connue.
Nombre réduit de composants Inconvénients :
Composants limités dans leur fonctionnalité. -La consommation en ressource machine
-La lenteur d'exécution des applications qui
utilisent swing.

Propose une approche intermédiaire.


Utiliser autant que possible les composants du syst. et
implémenter les autres en Java.
=> Rapidité d'exécution,
=> Moins de ressources machines lors de l'exécution
Inconvénients:
- dépendance du système graphique de l'environ.
d'exécution
- swt n'utilise pas de purs objets java
=> il n'est pas possible de compter sur le ramasse
miette pour libérer la mémoire.
Java Swing 3
Java Swing

Help -> Install new software

Java Swing 4
Java Swing

Help -> Install new software

Java Swing 5
Java Swing

File
-> New
-> Others

Java Swing 6
Java Swing

Nom de la classe qui correspond à


l’application swing

Attribut de la classe SwingApp qui


représente la fenêtre.

Méthode main de la classe SwingApp. Main Nouvelle instance (window) de la classe


contient l’appel de la fonction run() qui crée une SwingApp.
nouvelle instance de SwinApp et affiche sa
fenêtre frame.
Affichage de la fenêtre frame de la
classe SwingApp

Constructeur par défaut de la classe SwingApp.


Ce constructeur appelle la fonction initialise() qui
va créer la fenêtre frame .

Java Swing 7
Java Swing

C’est un outil graphique.


Permet la création des fenêtres et des composants graphiques sans recours au code java.
Une synchronisation en temps réel entre le design et le code source.
Toute action faite dans l’un sera générée dans l’autre. Palette des composants
graphiques de java

Struct. hiérarechique des


composants créés dans la
fenêtre

Panneau des propriétés du Struct. hiérarechique des


composant sélectionné composants créés dans la
fenêtre

Basculer entre le Design et le


code source

Java Swing 8
Java Swing

Présentation
Représente une fenêtre principale qui
possède:
• un titre,
• une taille modifiable
• et éventuellement un menu.
C’est un conteneur destiné à contenir
d’autres composants

Deux constructeurs:
• JFrame()
• JFrame(String) Création d'une
instance en précisant le titre

Java Swing 9
Java Swing

Exemple 1 :
Créer puis afficher une fenêtre avec la classe Jframe.

Java Swing 10
Java Swing

=> est une méthode de Jframe


 fournit au contenu de la fenêtre une référence de type .
=> possède deux méthodes utiles: add et remove
=> add et remove permettent d’ajouter/supprimer un composant d’une
fenêtre.

Java Swing 11
Java Swing

Ajouter dans un Jframe un panneau contenant un bouton.

Java Swing 12
Java Swing

Les événements consistent à déclencher une action en cas de détecter (écouter),


à travers un écouteur (listener), un évènement bin déterminé.

La méthode
addWindowsListener
de Jframe permet
La méthode
addWindowsListener (…) qui
d’ajouter un listener
permet de créer les listener d’évènement
windowsClosing
(fermeture de la
fenêtre) qui
exécutera l’arrêt de
l’application
Le listener windowsClosing( …)
(System.exit(0);)
Action(s) à faire lors de l’évènement «
fermeture de la fenêtre »

Java Swing 13
Java Swing

JFrame
JRootPane
•Tous les composants ajoutés au JFame doivent être
ajoutés à un des JPanel du JRootPane et non au JFrame JRootPane
directement.
glassPane layredPane
•Le JRootPane se compose de plusieurs éléments :
- glassPane : un JPanel par défaut
-layeredPane qui se compose du contentPane (un contentPane
JPanel par défaut) et du menuBar (un objet de type
JMenuBar)
menuPane

layeredPane regroupe le contentPane et le menuBar.

contentPane est par défaut un JPanel opaque dont le


gestionnaire de présentation est un BorderLayout.
menuBar permet de contenir un menu

Java Swing 14
Java Swing

Un JmenuBar est un panel permettant de contenir une barre de menus.

JmenuBar

Jmenu

menuItem1 menuItem2 menuItem3

Barre de
Menu

File Edit Run Help

New Save Exit Cut Copy Paste Debug Run

Java Swing 15
Java Swing

Attacher un menu JmenuBar à la Jframe. Par défaut, le JmenuBar est vide. La méthode
setJMenuBar() permet d'affecter un menu à la JFrame.

Java Swing 16
Java Swing

Jbutton hérite de la classe abstract AbstractButton


Les méthodes :

Java Swing 17
Java Swing

La méthode addActionListener (…) permet d’ajouter le listener de l’évennement


«Bouton actionné» traitée par la méthode actionPerformed( …)

Dans cet exemple trois


évènements sont
traités diférement: le
focus sur le bouton, le
clic et l’action sur le
bouton.

Java Swing 18
Java Swing

JCheckBox hérite aussi de la classe abstract AbstractButton.


On peut placer plusieurs cases à cocher JCheckBox dans un groupe ButtonGroup.
Dans ce cas, un seul composant du groupe peut être sélectionné.

Java Swing 19
Java Swing

La méthode addItemListener (…) permet d’ajouter le listener de l’évennement


«Bouton actionné» traitée par la méthode itemStateChanged( …)

L’écouteur ItemListener
traite l’évènement
itemStateChanges et utilise
la méthode isSelected du
JCheckBox pour connaitre
son état à l’instant.

Java Swing 20
Java Swing

- JRadioButton représente un bouton radio dans un groupe de boutons.


- Hérite de la classe AbstractButton.
- Dans un groupe de boutons radio, un seul bouton radio peut être sélectionné à la fois.

Java Swing 21
Java Swing

JTextComponent est une


classe abstraite mère de
tous les composants
permettant la saisie de texte
(JTextField,
JFormattedTextField,
JEditorPane, …).

Java Swing 22
Java Swing

- JTextField permet la saisie d'une seule ligne de texte simple.

Java Swing 23
Java Swing

-Permet la saisie des mots de passe.


-Hérite de la classe JTextField.

Java Swing 24
Java Swing

-JEditorPane permet la saisie de texte riche multilignes.


-Peut contenir des informations de mise en pages et de formatage
-Peut supporter les formats RTF et HTML.

Java Swing 25
Java Swing

- JComboBox représente la liste déroulente qui permet le


stockage de liste de valeurs de type String.

 addItem(a) : ajoute un nouvel élément a au JComboBox


 getItemCount(): retourne le nombre des éléments du JComboBox
 getItemAt(i) : retourne l’élément d’indice i dans le JComboBox
 setSelectedIndex(i) : sélectionné l’élément d’indice i
 getSelectedItem() : retourne l’élément sélectionné du JComboBox
 removeItemAt(i): supprime l’élément n° i du ComboBox
 removeAll(): supprime tous les éléments du ComboBox

Java Swing 26
Java Swing

L’exemple suivant montre la création


d’un JComboBox (combo) ainsi que
l’applications de certaines de ses
méthodes principales dans un
évènnement actionPerformed d’un
bouton btnOk.

Java Swing 27
Java Swing

- Une autre forme la liste déroulente.


- Stocker une liste de valeurs.
- JListBox Vs JComboBox :
JComboBox permet la saisie de texte pour chercher les éléments.

 setListData(vector V) : charger dans la JListeBox les éléments du vecteur V.


 setSelectedIndex(i) : sélectionner l’élément d’indice i
 getSelectedIndex() : retourner l’indice de l’élément sélectionné
 getSelectedValue() : retourner l’élément sélectionné du JListBox
 getSelectedIndices() : retourner un tableau d’Object contenant les éléments
sélecrtionnés (cas de sélection de plusieurs éléments en même temps)

Java Swing 28
Java Swing

L’exemple suivant montre la


création d’un JListBox (list)
ainsi que l’utilisations de
certaines de ses méthodes
principales dans un
évènnement actionPerformed
d’un bouton btnOk_1.

Java Swing 29
Java Swing

 Représente les étiquetes.


 Pas de champs de saisie de texte au moment de l’exécution.
 Possède une icône qui sert à afficher les images.

Java Swing 30
Java Swing

La méthode setIcon de la
classe Jlabel permet de
définir une image (du
disque dur) comme image
de fond du Jlabel.

Java Swing 31
Java Swing

 JTable représente un tableau de lignes et de colonnes.


 Doit être encastré dans un ScrollPanel pour qu’on puisse le déffiler.

Java Swing 32
Java Swing

Créer un Jtable et le placer dans un scrollPanel

Redimentionner auto. La
largeur des colonnes en
fonction de leurs contenus

Police du texte de monTableau

Couleur du texte des lignes

Autoriser la sélection des cellules


Autoriser la sélection des colonnes

Remplire est une méthode


appelée pour charger
monTableau avec des valeurs.

setViewportView permet de
visualiser monTableau.

Java Swing 33
Java Swing

Chargement du JTable

Java Swing 34
Java Swing

 Permet de présenter des données sous


une forme hiérarchique arborescente.
 Les éléments peuvent avoir des
ascendants et des déscendants.
 Les feuilles (leaf) sont des éléments qui
ne possèdent pas d'éléments fils.

 7 constructeurs:
public JTree();
public JTree(Hashtable value); public JTree(Vector value);
public JTree(Object[] value); public JTree(TreeModel model);
public JTree(TreeNode rootNode);
public JTree(TreeNode rootNode, boolean askAllowsChildren);

Java Swing 35
Java Swing

Dans cet exemple les éléments de


l’arbre, affichés dans l’exécution
(colors, sports, basketball, …), sont
créés par le constructeur par défaut
Jtree().

Java Swing 36
Java Swing

Dans cet exemple le contenu de l’arbre


de monJTree est initialisé avec un
tableau de String appelé racine.
De plus, monJTree est encastré dans un
monScrollPanel pour ajouter une barre
de défillement.

barre de défillement offerte par


le ScrollPanel pour défiler les
élément de monJTree.

Java Swing 37
Java Swing

La classe DefaultMutableTreeNode hérite de la classe TreeNoeud des


méthodes permettant la gestion des nœuds de l’arbre d’un Jtree.
Ici Noeud1 et Noeud2 ne sont pas des
=> on doit définir les nœuds en tant que des objets de String simples mais des objets de la
DefaultMutableTreeNode. classe DefaultMutableTreeNode qui offre
des méthodes de gestion de nœud dont
certaines sont exposées dans la page
suivante.

Java Swing 38
Java Swing

La méthode getLastSelectedPathComponent()
de la classe JTree permet de retourner un
DefaultMutableTreeNode contenant le nœud
sélectionné stocké par la suite dans l’objet
nodeSelected.

getUserObject() et getChildCount() de
la classe DefaultMutableTreeNode
permettent de connaitre le nom et le
nbre des fils du nodeSelected

Java Swing 39
Java Swing

 Pratiquement tous les composants Swing créent des événements, soit directement, soit
par une action de l'utilisateur sur le composant.
 Les événements peuvent déclencher une action exécutée par d'autre(s) composant(s).
 Les listener sont des écouteurs qui permettent de choisir lesquels des évènements qui
sont traités.

EventObject

Java.swing.event AWTEvent

ActionEvent ComponentEvent ItemEvent

WindowEvent InputEvent FocusEvent

MouseEvent KeyEvent

Java Swing 40
Java Swing

 Un très grand nombre d'événements sont générés.


 Impossible de tous les gérer.
 => Ecouter uniquement les événements désirés.
 => Créer des écouteurs (listener) pour chaque evennement désiré.
 => Par la suite on associe ces écouteurs aux composants cibles.
Ici on ajoute au bouton btnOk
un écouteur (listener) de
l’évènement ActionEvent et on
le traite par un message affiché
à l’ecran.

Java Swing 41
Java Swing

ActionEvent
Les composants sources de ActionEvent sont :
• Les Boutons : JButton, JRadioButton, JCheckBox, JToggleButton
• Les menus : JMenuItem, JMenu, JRadioButtonMenuItem, JCheckBoxMenuItem
• Les textes : JTextField

MouseEvent
Tous les composants peuvent déclencher cet évènement relié à la souris.
Les événements sont générés dans l'ordre suivant:
1. mousePressed
2. mouseReleased
3. mouseClicked

KeyEvent
Cet évènement est relié aux touches du clavier.
Les événements sont générés dans l'ordre suivant:
1.keyPressed
2.keyTyped : pour les touches qui ont un effet sur le texte d'un composant texte.
3.keyReleased

Java Swing 42

Vous aimerez peut-être aussi