first commit
This commit is contained in:
94
TP_DEV3.1/Transitions/GalerieSimple.java
Normal file
94
TP_DEV3.1/Transitions/GalerieSimple.java
Normal file
@@ -0,0 +1,94 @@
|
||||
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);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user