Bonjour.
Alors voila j'ai un projet java fait avec netbeans qui contient deux fenêtres.
Je cherche a instancier l'une d'elle en tant que Singleton (une seule instance de classe possible).
Je fais donc :
Que j'instancie comme ça depuis l'autre fenêtre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class MaClasse extends java.awt.Frame { private static MaClasse instance = null; private MaClasse() { } public static MaClasse newInstance() { if (instance == null) {instance = new MaClasse();} initComponents(); return instance; } }
J'obtiens une erreur sur la ligne "initComponents();" qui est une instruction générée automatiquement par netbeans (pour mettre en forme la fenêtre) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private void btNouveauActionPerformed(java.awt.event.ActionEvent evt) { MaClasse window = MaClasse.newInstance(); window.setVisible(true); }
Et si j'essaye d'enlever le "static", l'erreur est cette fois à l'appel sur la ligne "MaClasse window = MaClasse.newInstance();" et est :non-static method initComponents() cannot be referenced from a static context
Si je met en commentaire l'instruction "initComponents();" je vois que le singleton marche bien puisque quand je clique plusieurs fois sur le bouton une seule fenêtre s'affiche. Mais j'ai besoin de cette instruction pour construire la fenêtre ...non-static method newInstance() cannot be referenced from a static context
Bref comment faire svp ?
Merci d'avance.
Partager