0% ont trouvé ce document utile (0 vote)
21 vues

L'API JAVA Swing

Java Swing est une bibliothèque graphique de Java pour créer des interfaces utilisateur. Elle offre divers composants tels que JFrame, JButton, JTextField, et permet d'organiser ces composants à l'aide de layouts comme GridLayout et BorderLayout. Le document inclut également des exemples de gestion des événements, de dialogues, de menus, et d'utilisation de JTable pour afficher des données.

Transféré par

Dalila Bsa
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
21 vues

L'API JAVA Swing

Java Swing est une bibliothèque graphique de Java pour créer des interfaces utilisateur. Elle offre divers composants tels que JFrame, JButton, JTextField, et permet d'organiser ces composants à l'aide de layouts comme GridLayout et BorderLayout. Le document inclut également des exemples de gestion des événements, de dialogues, de menus, et d'utilisation de JTable pour afficher des données.

Transféré par

Dalila Bsa
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 15

L’interface graphique : Java swing

1. Introduction à Java Swing

Qu’est-ce que Java Swing ?

Swing est une bibliothèque graphique de Java qui permet de créer des interfaces graphiques
(GUI). Elle fait partie du Java Foundation Classes (JFC).
 Swing repose sur AWT (Abstract Window Toolkit), mais est plus puissante et flexible.
 Elle est "lightweight", donc indépendante du système d'exploitation.

Principaux composants Swing :

Composant Description
JFrame La fenêtre principale
JPanel Un conteneur pour organiser d’autres composants
JLabel Affiche un texte
JButton Bouton cliquable
JTextField Champ de texte
JTextArea Zone de texte multiline
JCheckBox Case à cocher
JRadioButton Bouton radio
JComboBox Liste déroulante
JTable Tableau de données

Premier exemple : Fenêtre avec un label

package com.java.swing;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class HelloSwing {


public static void main(String[] args) {

// Créer la fenêtre
JFrame frame = new JFrame("Ma première fenêtre");
frame.setSize(300, 200); // taille : largeur x hauteur
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Ajouter un label
JLabel label = new JLabel("Bonjour le monde !");
frame.add(label);

// Afficher la fenêtre
frame.setVisible(true);

}
}
On aura le résultat suivant :

Mme BENSIDI AHMED 1


L’interface graphique : Java swing

Explication :

 JFrame est la fenêtre principale.


 setDefaultCloseOperation permet de fermer le programme en cliquant sur la croix.
 add(label) ajoute le composant au centre de la fenêtre.
 setVisible(true) rend la fenêtre visible.

Exercice pratique 1 :

Crée une application qui :


 Affiche une fenêtre 400x300
 Contient un JLabel avec ton nom
 Change le titre de la fenêtre

2. Boutons et Champs de texte

Exemple : Affichage d’un message saisi

package com.java.swing;

import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

public class HelloSwing {


public static void main(String[] args) {
JFrame frame = new JFrame("Saisie utilisateur");
frame.setSize(400, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Layout vertical
frame.setLayout(new GridLayout(3, 1));

// Champ de texte

Mme BENSIDI AHMED 2


L’interface graphique : Java swing

JTextField champNom = new JTextField();

// Label vide
JLabel labelMessage = new JLabel("", SwingConstants.CENTER);

// Bouton
JButton boutonValider = new JButton("Afficher le nom");

// Action quand on clique sur le bouton


boutonValider.addActionListener(e -> {
String nom = champNom.getText();
labelMessage.setText("Bonjour " + nom + " !");
});

// Ajout des composants


frame.add(champNom);
frame.add(boutonValider);
frame.add(labelMessage);

frame.setVisible(true);
}
}

Le résultat est le suivant :

Exercice pratique 2 :

Crée une interface qui :


 Affiche un champ de saisie pour un âge
 Affiche un message différent si la personne a moins de 18 ans ou plus

3. Layouts (Dispositions)

Pourquoi utiliser des layouts ?

Sans layout, tous les composants se superposent. Les layouts permettent d’organiser les
composants dans la fenêtre.

Layouts les plus courants :

Mme BENSIDI AHMED 3


L’interface graphique : Java swing

Layout Description
FlowLayout Aligne les composants à la suite (par défaut)
Divise la fenêtre en 5 zones (NORTH, SOUTH, EAST, WEST,
BorderLayout
CENTER)
GridLayout Grille avec lignes et colonnes
BoxLayout Empile verticalement ou horizontalement

Exemple : BorderLayout

package com.java.swing;

import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class HelloSwing {


public static void main(String[] args) {
JFrame frame = new JFrame("BorderLayout");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new BorderLayout());

frame.add(new JButton("Nord"), BorderLayout.NORTH);


frame.add(new JButton("Sud"), BorderLayout.SOUTH);
frame.add(new JButton("Est"), BorderLayout.EAST);
frame.add(new JButton("Ouest"), BorderLayout.WEST);
frame.add(new JButton("Centre"), BorderLayout.CENTER);

frame.setVisible(true);

}
}

Le résultat est :

Exemple : GridLayout

Mme BENSIDI AHMED 4


L’interface graphique : Java swing

package com.java.swing;

import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class HelloSwing {


public static void main(String[] args) {
JFrame frame = new JFrame("GridLayout");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new GridLayout(2, 2)); // 2 lignes, 2 colonnes

frame.add(new JButton("1"));
frame.add(new JButton("2"));
frame.add(new JButton("3"));
frame.add(new JButton("4"));

frame.setVisible(true);
}
}

On aura :

Exercice pratique 3 :

Crée une interface avec :


 2 champs de texte (nom, prénom)
 1 bouton "Afficher"
 1 JLabel en dessous pour afficher "Bonjour Nom Prénom !"
 Utilise un GridLayout 3x1 pour organiser ça verticalement

4. Gestion des événements avancés

Mme BENSIDI AHMED 5


L’interface graphique : Java swing

Les événements Swing les plus utilisés

Listener Utilisé pour...


ActionListener Boutons, menus
ItemListener Cases à cocher, listes déroulantes
KeyListener Clavier
MouseListener Clics souris
ChangeListener Curseurs, barres de progression

Exemple : ActionListener sur plusieurs boutons

package com.java.swing;

import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class HelloSwing {


public static void main(String[] args) {
JFrame frame = new JFrame("Choix de couleur");
frame.setSize(300, 150);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout());

JLabel label = new JLabel("Choisissez une couleur");

JButton rouge = new JButton("Rouge");


JButton bleu = new JButton("Bleu");

rouge.addActionListener(e -> label.setForeground(Color.RED));


bleu.addActionListener(e -> label.setForeground(Color.BLUE));

frame.add(label);
frame.add(rouge);
frame.add(bleu);

frame.setVisible(true);
}
}

On aura :

Mme BENSIDI AHMED 6


L’interface graphique : Java swing

Exemple : ItemListener pour une JCheckBox

package com.java.swing;

import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class HelloSwing {


public static void main(String[] args) {
JFrame frame = new JFrame("CheckBox");
frame.setSize(300, 100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JCheckBox caseBox = new JCheckBox("Afficher message");


JLabel label = new JLabel("");

caseBox.addItemListener(e -> {
if (e.getStateChange() == ItemEvent.SELECTED) {
label.setText("Case cochée !");
} else {
label.setText("");
}
});

frame.setLayout(new FlowLayout());
frame.add(caseBox);
frame.add(label);
frame.setVisible(true);

}
}

On aura comme résultat

Mme BENSIDI AHMED 7


L’interface graphique : Java swing

Exercice pratique 4 :

Crée une interface avec :


 Une JComboBox contenant 3 pays (ex : Algérie, France, Canada)
 Un JLabel qui affiche "Vous avez choisi : [Pays]"

5. Dialogues et menus

Les dialogues avec JOptionPane

Méthode Utilité
showMessageDialog Affiche un message
showConfirmDialog Oui / Non / Annuler
showInputDialog Saisie de texte
showOptionDialog Choix personnalisé

Exemple : Message simple

package com.java.swing;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class HelloSwing {


public static void main(String[] args) {
// Créer la fenêtre principale
JFrame frame = new JFrame("Exemple JOptionPane");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null); // Utilisation du positionnement absolu

// Créer un bouton
JButton button = new JButton("Afficher message");
button.setBounds(70, 60, 150, 30);

// Ajouter un écouteur d'événement


button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Afficher la boîte de message
JOptionPane.showMessageDialog(null, "Opération réussie !");
}
});

// Ajouter le bouton à la fenêtre


frame.add(button);
// Rendre la fenêtre visible

Mme BENSIDI AHMED 8


L’interface graphique : Java swing

frame.setVisible(true);
}
}

Le résultat sera :

Exemple : Confirmation

package com.java.swing;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class HelloSwing {


public static void main(String[] args) {

// Créer la fenêtre principale


JFrame frame = new JFrame("Exemple ConfirmDialog");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);

// Créer un bouton "Quitter"


JButton quitterButton = new JButton("Quitter");
quitterButton.setBounds(100, 70, 100, 30);

// Ajouter l'action au clic


quitterButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int choix = JOptionPane.showConfirmDialog(
null,
"Voulez-vous quitter ?",

Mme BENSIDI AHMED 9


L’interface graphique : Java swing

"Confirmation",
JOptionPane.YES_NO_OPTION
);

if (choix == JOptionPane.YES_OPTION) {
System.exit(0);
}
}
});

// Ajouter le bouton à la fenêtre


frame.add(quitterButton);

// Afficher la fenêtre
frame.setVisible(true);
}
}

On aura :

Menus avec JMenuBar

package com.java.swing;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;

public class HelloSwing {


public static void main(String[] args) {
JFrame frame = new JFrame("Menu exemple");
frame.setSize(400, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Mme BENSIDI AHMED 10


L’interface graphique : Java swing

// Barre de menu
JMenuBar menuBar = new JMenuBar();

// Menu principal
JMenu menuFichier = new JMenu("Fichier");

// Éléments du menu
JMenuItem itemNouveau = new JMenuItem("Nouveau");
JMenuItem itemQuitter = new JMenuItem("Quitter");

// Action sur "Quitter"


itemQuitter.addActionListener(e -> {
int confirm = JOptionPane.showConfirmDialog(frame, "Quitter l'application ?");
if (confirm == JOptionPane.YES_OPTION) {
frame.dispose();
}
});

// Construction du menu
menuFichier.add(itemNouveau);
menuFichier.add(itemQuitter);
menuBar.add(menuFichier);

// Ajout à la fenêtre
frame.setJMenuBar(menuBar);
frame.setVisible(true);
}
}

On aura :

Exercice pratique 5 :

Crée une fenêtre avec :


 Un bouton "Aide"
 Lorsqu'on clique, une boîte de dialogue (JOptionPane) s’affiche avec une phrase
d’aide

6. Tableaux (JTable) et gestion des données

Mme BENSIDI AHMED 11


L’interface graphique : Java swing

Qu’est-ce que JTable ?

JTable permet d’afficher des données en colonnes et lignes, comme un petit tableau Excel.

Exemple simple avec JTable

package com.java.swing;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class HelloSwing {

public static void main(String[] args) {


JFrame frame = new JFrame("Exemple de JTable");
frame.setSize(400, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// En-têtes
String[] colonnes = {"Nom", "Prénom", "Âge"};

// Données
Object[][] donnees = {
{"Youssef", "Ali", 24},
{"Sarah", "Ben", 30},
{"Nour", "Ahmed", 21}
};

// Création de la JTable
JTable table = new JTable(donnees, colonnes);

// Ajouter dans un JScrollPane pour le scroll


JScrollPane scrollPane = new JScrollPane(table);
frame.add(scrollPane);

frame.setVisible(true);
}
}

On aura :

Astuce : Le JScrollPane permet de scroller si le tableau devient trop grand.

Mme BENSIDI AHMED 12


L’interface graphique : Java swing

Exemple avec ajout dynamique (modèle)

Pour des actions dynamiques (ajouter/supprimer), on utilise le DefaultTableModel.

package com.java.swing;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;

public class HelloSwing {


public static void main(String[] args) {
// Créer la fenêtre
JFrame frame = new JFrame("JTable avec DefaultTableModel");
frame.setSize(500, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);

// Définir les colonnes


String[] columnNames = {"ID", "Nom", "Filière"};

// Créer le modèle de table


DefaultTableModel model = new DefaultTableModel(columnNames, 0);

// Ajouter quelques lignes au modèle


model.addRow(new Object[]{"1", "Alice", "Informatique"});
model.addRow(new Object[]{"2", "Bob", "Mathématiques"});

// Créer la JTable à partir du modèle


JTable table = new JTable(model);

// Mettre la table dans un JScrollPane


JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setBounds(20, 20, 450, 150);

// Champ de saisie pour ajouter une nouvelle ligne


JTextField idField = new JTextField();
idField.setBounds(20, 180, 50, 25);

JTextField nomField = new JTextField();


nomField.setBounds(80, 180, 150, 25);

Mme BENSIDI AHMED 13


L’interface graphique : Java swing

JTextField filiereField = new JTextField();


filiereField.setBounds(240, 180, 150, 25);

JButton addButton = new JButton("Ajouter");


addButton.setBounds(400, 180, 80, 25);

// Action du bouton "Ajouter"


addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String id = idField.getText();
String nom = nomField.getText();
String filiere = filiereField.getText();

if (!id.isEmpty() && !nom.isEmpty() && !filiere.isEmpty()) {


model.addRow(new Object[]{id, nom, filiere});
idField.setText("");
nomField.setText("");
filiereField.setText("");
} else {
JOptionPane.showMessageDialog(frame, "Veuillez remplir tous les champs.");
}
}
});

// Ajouter les composants à la fenêtre


frame.add(scrollPane);
frame.add(idField);
frame.add(nomField);
frame.add(filiereField);
frame.add(addButton);

// Afficher la fenêtre
frame.setVisible(true);
}
}

On aura :

Exercice pratique 6 :

Mme BENSIDI AHMED 14


L’interface graphique : Java swing

Crée une fenêtre avec une JTable qui affiche une liste de livres :
 Colonnes : Titre, Auteur, Année
 3 lignes de livres en données

7. Projet complet — Mini gestion de contacts

Objectif :

Construire une application complète Swing qui permet de :


 Ajouter des contacts (nom, téléphone, email)
 Afficher les contacts dans une JTable
 Réinitialiser les champs

Structure du projet

 JTextField pour les entrées


 JButton pour ajouter et réinitialiser
 JTable avec DefaultTableModel pour les données

Exercice final :

Crée cette interface en Swing avec :


 Trois JTextField (nom, téléphone, email)
 Un bouton "Ajouter" qui insère une ligne dans la table
 Un bouton "Réinitialiser" qui vide les champs

Mme BENSIDI AHMED 15

Vous aimerez peut-être aussi