Bonjour,
Pour débuter avec la programmation événementiel, j'ai voulu créer "un setup d'installation".
Le problème est que lorsque je souhaite initialiser les attributs de ma classe PanelOuverture (qui hérite de JPanel) dans le contructeur de ma classe Fenetre (qui hérite de JFrame), ça ne fonctionne pas.
Voici ma classe Fenetre (JFrame) :
Code : 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 import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JButton; import javax.swing.JLabel; class Fenetre extends JFrame{ private PanelOuverture monPanelOuverture; private JButton boutonInstaller; private JButton boutonAnnuler; private JLabel labelInstallation; public Fenetre(){ this.setTitle("Installation Test"); this.setSize(400, 400); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); monPanelOuverture = new PanelOuverture(boutonInstaller, boutonAnnuler, labelInstallation); // <- ERREUR this.setContentPane(monPanelOuverture); this.setVisible(true); } }
Je décide donc d'aller dans ma classe PanelOuverture et de voir ce qui ne va pas en mode pas à pas, c'est à dire que je met en commentaire ligne par ligne les instructions du constructeur PanelOuverture.
Voici ma classe PanelOuverture (JPanel) :
Comme vous pouvez le voir, toutes ces lignes de mon constructeur PanelOuverture renvoient une erreur.
Code : 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 import javax.swing.JPanel; import javax.swing.JButton; import javax.swing.JLabel; class PanelOuverture extends JPanel{ public PanelOuverture(JButton boutonInstaller, JButton boutonAnnuler, JLabel labelInstallation){ this.setLayout(null); // Erreur du pas n°1 boutonInstaller.setBounds(100, 300, 100, 30); // Erreur du pas n°2 boutonAnnuler.setBounds(220, 300, 100, 30); // Erreur du pas n°3 labelInstallation.setText("Bonjour, vous êtes sur le point d'installer\n " + "un logiciel"); // Erreur du pas n°4 labelInstallation.setHorizontalAlignment(JLabel.CENTER); // Erreur du pas n°5 this.add(boutonInstaller); // Erreur du pas n°6 this.add(boutonAnnuler); // Erreur du pas n°7 this.add(labelInstallation); // Erreur du pas n°8 } }
Erreur console à partir du pas n°1 :
Erreur console à partir du pas n°6 :Exception in thread "main" java.lang.NullPointerException
at PanelOuverture.<init>(PanelOuverture.java:13)
at Fenetre.<init>(Fenetre.java:23)
at Module.main(Module.java:4)
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at PanelOuverture.<init>(PanelOuverture.java:20)
at Fenetre.<init>(Fenetre.java:23)
at Module.main(Module.java:4)
J'ai pensé qu'il aurait été intéressant de créer plusieurs JPanel (Ouverture du programme d'installation / Choix du répertoire pour installer le logiciel etc...)...
Pourriez-vous m'aider en me disant d'où peut venir mon problème et me dire ce que je devrais faire ?
Je vous remercie pour votre aide![]()








Répondre avec citation





Partager