-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIntroduction.java
More file actions
108 lines (92 loc) · 3.91 KB
/
Copy pathIntroduction.java
File metadata and controls
108 lines (92 loc) · 3.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.net.URL;
public class Introduction extends JFrame {
private JLabel imageLabel; // Label contenant l'image
public Main aMain;
public Introduction(String imagePath) {
setTitle("Cliquez pour commencer");
setSize(800, 800);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null); // centre la fenêtre
System.out.println("=== DÉMARRAGE DE L’INTRODUCTION ===");
System.out.println("Chemin demandé : " + imagePath);
// Chargement de l’image
ImageIcon imageIcon = loadImage(imagePath);
if (imageIcon == null) {
System.err.println("❌ ERREUR : impossible de charger l'image !");
JOptionPane.showMessageDialog(this,
"Impossible de charger l'image : " + imagePath,
"Erreur", JOptionPane.ERROR_MESSAGE);
System.exit(1);
} else {
System.out.println("✅ Image chargée avec succès !");
}
// Création et ajout du label
imageLabel = new JLabel(imageIcon);
imageLabel.setHorizontalAlignment(JLabel.CENTER);
imageLabel.setVerticalAlignment(JLabel.CENTER);
add(imageLabel);
// Événement clic
imageLabel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("🖱️ Clic détecté sur l'image — lancement de Main...");
startMainClass();
}
});
}
/** Tente de charger l'image depuis le classpath ou un fichier local */
private ImageIcon loadImage(String path) {
try {
// 1️⃣ Tentative via getResource (dans le classpath)
URL resource = getClass().getResource(path);
if (resource != null) {
System.out.println("✅ Image trouvée comme ressource : " + resource);
return new ImageIcon(resource);
} else {
System.out.println("⚠️ Aucune ressource trouvée à : " + path);
}
// 2️⃣ Tentative en fichier local
File file = new File(path);
if (file.exists()) {
System.out.println("✅ Image trouvée comme fichier local : " + file.getAbsolutePath());
return new ImageIcon(file.getAbsolutePath());
} else {
System.out.println("❌ Aucun fichier trouvé à : " + file.getAbsolutePath());
}
} catch (Exception ex) {
System.err.println("💥 Exception lors du chargement de l'image : " + ex.getMessage());
ex.printStackTrace();
}
return null;
}
/** Lance la classe principale du jeu */
private void startMainClass() {
try {
this.dispose(); // ferme l’intro
System.out.println("🚀 Lancement de la classe Main...");
new Main();
Main.main(null);
System.out.println("✅ Classe Main lancée avec succès !");
Musique aMusique = new Musique();
aMusique.music("musique");
} catch (Exception ex) {
System.err.println("💥 Erreur lors du démarrage de Main : " + ex.getMessage());
ex.printStackTrace();
JOptionPane.showMessageDialog(this,
"Erreur lors du démarrage du jeu : " + ex.getMessage(),
"Erreur", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
System.out.println("🧭 Lancement du programme Introduction...");
// Essaie d'abord de charger depuis le fichier local
Introduction intro = new Introduction("./intro.jpg");
intro.setVisible(true);
});
}
}