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);
        });
    }
}
