import javax.swing.*; import java.awt.*; import java.awt.event.*; public class GalerieSimple extends JFrame { // Tableau des fichiers images private String[] fichiers = { "img1.jpg", "img2.jpg", "img3.jpg", "img4.jpg" }; private int indiceImage = 0; // Composants graphiques private JLabel etiquetteImage = new JLabel(); public GalerieSimple() { super("Galerie avec Confirmation"); // Affichage de la première image etiquetteImage.setHorizontalAlignment(SwingConstants.CENTER); etiquetteImage.setIcon(new ImageIcon(fichiers[indiceImage])); // Panneau principal JPanel panneau = new JPanel(new BorderLayout()); panneau.add(etiquetteImage, BorderLayout.CENTER); // Clic souris → suivant ou précédent panneau.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { int largeur = panneau.getWidth(); if (e.getX() >= largeur / 2) { imageSuivante(); } else { imagePrecedente(); } } }); // Fermeture personnalisée (on demande confirmation) setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { demanderConfirmation(); } }); // Paramètres de la fenêtre setContentPane(panneau); setSize(800, 600); setLocationRelativeTo(null); } private void imageSuivante() { indiceImage = (indiceImage + 1) % fichiers.length; etiquetteImage.setIcon(new ImageIcon(fichiers[indiceImage])); } private void imagePrecedente() { indiceImage = (indiceImage - 1 + fichiers.length) % fichiers.length; etiquetteImage.setIcon(new ImageIcon(fichiers[indiceImage])); } private void demanderConfirmation() { // Fenêtre modale faite avec JDialog JDialog dialogue = new JDialog(this, "Confirmation", true); dialogue.setLayout(new BorderLayout()); JLabel message = new JLabel("Voulez-vous quitter ?", SwingConstants.CENTER); JPanel panneauBoutons = new JPanel(); JButton boutonOui = new JButton("Oui"); JButton boutonNon = new JButton("Non"); panneauBoutons.add(boutonOui); panneauBoutons.add(boutonNon); dialogue.add(message, BorderLayout.CENTER); dialogue.add(panneauBoutons, BorderLayout.SOUTH); boutonOui.addActionListener(ev -> System.exit(0)); boutonNon.addActionListener(ev -> dialogue.dispose()); dialogue.setSize(300, 150); dialogue.setLocationRelativeTo(this); dialogue.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(() -> { GalerieSimple fenetre = new GalerieSimple(); fenetre.setVisible(true); }); } }