Bonjour,
Toujours dans ma suite de test pour apprendre java, j'ai encore une question.
J'ai créé une classe pour initialiser mes JTextField quand je clique sur le bouton Création et çà marche.
Je voulais mettre cette classe dans un autre fichier.java pour ne pas surcharger mon fichier de base.
J'ai donc créé un fichier InitialisationEcran.java dans le même projet et dans lequel j'ai mis ma classe, et j'ai cette erreur à chaque setText :
"No enclosing instance of the type DecritFenetre is accessible in scope"
Eléments de la classe DecritFenetre
La classe InitialisationEcran
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 public class DecritFenetre { .... .... private JLabel labelNom; private JTextField saisieNom; .... private JButton boutonCreate; .... .... public DecritFenetre () { .... labelNom = new JLabel ("Nom : "); panneauHaut.add(labelNom); saisieNom = new JTextField(25); panneauHaut.add(saisieNom); .... boutonCreate = new JButton("Création"); boutonCreate.addActionListener((ActionListener) new InitialisationEcran()); panneauBouton.add(boutonCreate); .... .... } }
Que je mette la déclaration des JTextField en private ou en public, j'ai toujours la même erreur à chaque setText, à savoir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import java.awt.event.ActionListener; import java.awt.event.ActionEvent; // Pour initialisation des zones public class InitialisationEcran implements ActionListener { public void actionPerformed (ActionEvent e) { //System.out.println("Création d'une personne"); DecritFenetre.this.saisieNom.setText("Votre nom"); DecritFenetre.this.saisiePrenom.setText("Votre prénom"); .... DecritFenetre.this.saisieNom.requestFocus(); } }
"No enclosing instance of the type DecritFenetre is accessible in scope"
A noter quand la classe InitialisationEcran fait parti du fichier où se trouve la classe DecritFenetre tout marche bien, je n'ai pas d'erreur.
Pouvez vous m'aider à résoudre ce problème et me donner l'explication ?
Merci d'avance.
Cordialement.
Partager