Bonjour à tous.

Je n'arrive pas à récupérer les variables d'une fenêtre fille, alors que j'ai bien écris les accesseurs, déclarés public.

J'ai une première fenêtre, la principale, celle appelée dans le main, qui propose à l'utilisateur de créer une nouvelle fiche. Lorsque celui-ci clic sur l'item correspondant, une fenêtre modale s'ouvre, et lui propose de saisir des informations dans des JTextField. Ce sont ces informations que je voudrais récupérer dans ma fenêtre principale afin de pour m'en servir.

Voilà, la méthode qui déclanche l'ouverture de la fenêtre modale :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void newVehicule()
	{
		JDialog fenetre;
		fenetre = new frmNouveauVehicule ();
 
		// Affichage de la fenetre
		fenetre.pack();
		fenetre.setVisible (true);
 
                // Tentative de récupération des variables
		String numSerie;
		numSerie = fenetre.getNumSerie();  // Souligné, ça marche pas
		// Vehicule vehicule = new Vehicule();  //  je commente cette ligne car elle n'a rien à voir avec le probleme
	}
Enfin, voilà le code de ma fenetre fille :
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
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
public class frmNouveauVehicule extends JDialog implements ActionListener
{
	private JPanel monPanel; 	// Panel de la fenetre de menu 
	private JLabel lMarque, lModele, lNumSerie, lEnergie;
	public JTextField jtfMarque, jtfModele, jtfNumSerie;
	private JComboBox jcbEnergie;
	private final String[] energies = {"Essence", "Gazoil", "GPL"};
	private JButton jbtOk, jbtAnnuler;
 
	private boolean bValide;
 
 
	public frmNouveauVehicule()
	{
		setTitle("Création d'une nouvelle fiche véhicule");
		setSize (250,300);
		setLocation(100,100);
		setModal(true);
		//setUndecorated(true);
		//setAlwaysOnTop(true);
		setDefaultCloseOperation (DISPOSE_ON_CLOSE);
		setResizable (false);
 
		// Creation d'un panel
		monPanel = new JPanel ();
 
		// Ajout du Panel à la fenêtre
		getContentPane().add (monPanel);
 
		// Creation et ajout d'un layout
		GridBagLayout layout = new GridBagLayout();
		GridBagConstraints contraintes = new GridBagConstraints();
 
		monPanel.setLayout (layout);
		contraintes.fill = GridBagConstraints.HORIZONTAL;
 
 
 
 
		// Couleur du Panel
		monPanel.setBackground (Color.lightGray);
 
 
		// Mise en page
		lMarque = new JLabel("Marque : ", SwingConstants.RIGHT);
		lModele = new JLabel("Modèle : ", SwingConstants.RIGHT);
		lNumSerie = new JLabel("Numéro de série : ", SwingConstants.RIGHT);
		lEnergie = new JLabel("Energie : ", SwingConstants.RIGHT);
 
		jtfMarque = new JTextField(16);
		jtfModele = new JTextField(16);
		jtfNumSerie = new JTextField(16);
 
		jcbEnergie = new JComboBox (this.energies);
 
		jbtOk = new JButton ("Ok");
		jbtAnnuler = new JButton ("Annuler");
 
		appliqueContraintes(contraintes, 0,0,1,1,20,100);
		layout.setConstraints(lNumSerie, contraintes);
		monPanel.add(lNumSerie);
 
		appliqueContraintes(contraintes, 1,0,1,1,80,100);
		layout.setConstraints(jtfNumSerie, contraintes);
		monPanel.add(jtfNumSerie);
 
		appliqueContraintes(contraintes, 0,1,1,1,100,100);
		layout.setConstraints(lMarque, contraintes);
		monPanel.add(lMarque);
 
		appliqueContraintes(contraintes, 1,1,1,1,100,100);
		layout.setConstraints(jtfMarque, contraintes);
		monPanel.add(jtfMarque);
 
		appliqueContraintes(contraintes, 0,2,1,1,100,100);
		layout.setConstraints(lModele, contraintes);
		monPanel.add(lModele);
 
		appliqueContraintes(contraintes, 1,2,1,1,100,100);
		layout.setConstraints(jtfModele, contraintes);
		monPanel.add(jtfModele);
 
		appliqueContraintes(contraintes, 0,3,1,1,100,100);
		layout.setConstraints(lEnergie, contraintes);
		monPanel.add(lEnergie);
 
		appliqueContraintes(contraintes, 1,3,1,1,100,100);
		layout.setConstraints(jcbEnergie, contraintes);
		monPanel.add(jcbEnergie);
 
		appliqueContraintes(contraintes, 0,4,1,1,100,100);
		layout.setConstraints(jbtOk, contraintes);
		monPanel.add(jbtOk);
 
		appliqueContraintes(contraintes, 1,4,1,1,100,100);
		layout.setConstraints(jbtAnnuler, contraintes);
		monPanel.add(jbtAnnuler);
 
		jbtOk.addActionListener(this);
		jbtAnnuler.addActionListener(this);
 
		bValide = false;
	}
 
	public void actionPerformed (ActionEvent e)
	{
		Object source; // Source l'objet
 
		// Initialisation, pour savoir quel objet à déclanché l'action
		source = e.getSource ();
		if (source == jbtAnnuler)
		{
			annule();
		}
 
		if (source == jbtOk)
		{
			if (valideDonnees() == true)
			{
				this.setVisible(false);
			}
		}
	}
 
	private void appliqueContraintes(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy)
	{
		gbc.gridx = gx;
		gbc.gridy = gy;
		gbc.gridwidth = gw;
		gbc.gridheight = gh;
		gbc.weightx = wx;
		gbc.weighty = wy;
	}
 
	private void annule()
	{
		this.dispose();
	}
 
	private boolean valideDonnees()
	{
		if (jtfNumSerie.getText().length() == 0)
		{
			JOptionPane.showMessageDialog(this, "Vous devez saisir un numéro de série");
			lNumSerie.setForeground(Color.RED);
			bValide = false;
			return false;
		}
 
		if (jtfMarque.getText().length() == 0)
		{
			JOptionPane.showMessageDialog(this, "Vous devez saisir une marque de véhicule");
			lMarque.setForeground(Color.RED);
			bValide = false;
			return false;
		}
 
		if (jtfModele.getText().length() == 0)
		{
			JOptionPane.showMessageDialog(this, "Vous devez saisir un modèle de véhicule");
			lModele.setForeground(Color.RED);
			bValide = false;
			return false;
		}
		bValide = true;
		return true;
	}
 
	/**
         * Accesseurs
         *
         * TODO To change the template for this generated type comment go to
         * Window - Preferences - Java - Code Style - Code Templates
         */
	public String getNumSerie()
	{
		return this.jtfNumSerie.getText();
	}
	public String getMarque()
	{
		return this.jtfMarque.getText();
	}
	public String getModele()
	{
		return this.jtfModele.getText();
	}
	public String getEnergie()
	{
		return this.jcbEnergie.getSelectedItem().toString();
	}
}
Vous remarquerez que mes accesseurs sont bien public...
Si quelqu'un à une idée sur la façon de procéder...

Grand merci d'avance.

Antoine