Bonsoir à tous. Je suis dans une sacré incompréhension, je vous l'avoue.
Déjà, ça fait 2 jours que je fais des recherches en tous genres. Et aucune n'a été concluante. Donc je me tourne vers vous.
Voyez-vous, j'ai une fenêtre très jolie comme celle ci :
Quand on clique sur Fichier, voici ce qu'il s'affiche :
Et normalement, quand on clique sur Nouveau, on appelle une méthode censée instancier une variable. Voici comment fonctionne le PanelAccueil.java : Si la variable n'est pas instanciée, on affiche le message de bienvenue. Si la variable est instanciée, on affiche "Y'a un projet en cours" à la place. Cependant, le JPanel ne semble jamais vouloir se repaint(), s'updateUI()... J'ai tout essayé de ce côté là. Je vous file le source nécéssaire au diagnostic :
Code EditeurDestinies.java : Sélectionner tout - Visualiser dans une fenêtre à part
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 package editeurvn; import java.awt.*; import java.awt.event.*; import javax.swing.*; import jeu.*; public class EditeurDestinies extends JFrame { public static VN jeu; private PanelAccueil pA; public EditeurDestinies() { setTitle("Editeur Destinies"); setLocation(50, 50); setSize(700, 500); setJMenuBar(new BarreMenu(this)); this.pA = new PanelAccueil(); add(this.pA); pack(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setVisible(true); } public void newProject() { EditeurDestinies.jeu = new VN(); this.pA.repaint(); pack(); } public static void main(String[] args) { EditeurDestinies ed = new EditeurDestinies(); } }
Code BarreMenu.java : Sélectionner tout - Visualiser dans une fenêtre à part
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 package editeurvn; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class BarreMenu extends JMenuBar implements ActionListener { private JMenuItem nouveau; private JMenuItem charger; private JMenuItem quitter; private JMenuItem edEvenements; private JMenuItem edMonstres; private JMenuItem edObjets; private EditeurDestinies edD; public BarreMenu(EditeurDestinies edD) { this.edD = edD; JMenu menuFichier = new JMenu("Fichier"); JMenu menuEditeurs = new JMenu("Editeurs"); this.nouveau = new JMenuItem("Nouveau"); this.charger = new JMenuItem("Charger"); this.quitter = new JMenuItem("Quitter"); this.edEvenements = new JMenuItem("Editeur Evenements"); this.edMonstres = new JMenuItem("Editeur Monstres"); this.edObjets = new JMenuItem("Editeur Objets"); menuFichier.add(this.nouveau); menuFichier.add(this.charger); menuFichier.addSeparator(); menuFichier.add(this.quitter); menuEditeurs.add(this.edEvenements); menuEditeurs.add(this.edMonstres); menuEditeurs.add(this.edObjets); this.nouveau.addActionListener(this); this.charger.addActionListener(this); this.quitter.addActionListener(this); this.edEvenements.addActionListener(this); this.edMonstres.addActionListener(this); this.edObjets.addActionListener(this); this.add(menuFichier); this.add(menuEditeurs); } public void actionPerformed(ActionEvent e) { System.out.println(((JMenuItem)e.getSource()).getText()); if(e.getSource() == this.quitter) System.exit(0); if(e.getSource() == this.nouveau) this.edD.newProject(); } }
Code PanelAccueil.java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package editeurvn; import java.awt.event.*; import javax.swing.*; import jeu.*; public class PanelAccueil extends JPanel { private JLabel affichage; public PanelAccueil() { if(EditeurDestinies.jeu == null) this.affichage = new JLabel("<html><center><font size=6 color=\"red\" >Bienvenue dans l'éditeur de Visual Novels !</font><br /><br />" + "Pour accéder aux contenus de ce logiciel, utilisez le menu du haut.<br/></center></html>"); else this.affichage = new JLabel("Y'a un projet de créé"); add(this.affichage); } }
Bien sûr, le tout se compile parfaitement, et aucune erreur n'apparaît. Je sèche vraiment, et je cherche vraiment à connaître la cause de cette erreur qui m'est déjà arrivée dans le passé.
Merci beaucoup d'avance, je m'en remets à vous.







Répondre avec citation


La plupart des réponses à vos questions sont déjà dans les 

Partager