95 lines
3.0 KiB
Java
95 lines
3.0 KiB
Java
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);
|
|
});
|
|
}
|
|
}
|