Files
BUT2/TP_DEV3.1/Organisation du code/test/AppGalerie.java
2025-10-23 14:28:03 +02:00

71 lines
2.3 KiB
Java

package fr.iutfbleau.projet;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
public class AppGalerie extends JFrame implements MouseListener {
// 1) Chemins DANS LE JAR (=> classpath)
private String[] listeImage = {
"images/image1.png",
"images/image2.png",
"images/image4.png"
};
private int indexImage = 0;
private JPanel panneau = new JPanel(new BorderLayout());
private JLabel etiquetteImage = new JLabel();
public AppGalerie() {
super("Confirmation");
etiquetteImage.setHorizontalAlignment(SwingConstants.CENTER);
etiquetteImage.setIcon(chargerIcone(listeImage[indexImage])); // <-- ICI
panneau.add(etiquetteImage, BorderLayout.CENTER);
panneau.addMouseListener(this);
setContentPane(panneau);
setSize(800, 600);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
// === MouseListener ===
@Override public void mouseClicked(MouseEvent e) {
int largeurPanel = panneau.getWidth();
if (e.getX() >= largeurPanel / 2) imageSuivante();
else imagePrecedente();
}
@Override public void mousePressed(MouseEvent e) {}
@Override public void mouseReleased(MouseEvent e) {}
@Override public void mouseEntered(MouseEvent e) {}
@Override public void mouseExited(MouseEvent e) {}
// === Navigation ===
private void imageSuivante() {
indexImage = (indexImage + 1) % listeImage.length;
etiquetteImage.setIcon(chargerIcone(listeImage[indexImage])); // <-- ICI
}
private void imagePrecedente() {
indexImage = (indexImage - 1 + listeImage.length) % listeImage.length;
etiquetteImage.setIcon(chargerIcone(listeImage[indexImage])); // <-- ICI
}
// === CHARGEMENT VIA CLASSPATH ===
private ImageIcon chargerIcone(String cheminDansJar) {
URL url = getClass().getClassLoader().getResource(cheminDansJar);
if (url == null) {
// debug utile si un nom est faux
throw new IllegalArgumentException("Ressource introuvable: " + cheminDansJar);
}
return new ImageIcon(url);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new AppGalerie().setVisible(true));
}
}