Bonjour,
En fait j'ai une classe qui créer des panel et les remplie. Dans cette classe une classe intérieur qui écoute un bouton. Lorsqu'on appuie sur ce bouton un des panel change et on affiche un formulaire.
J'ai donc une autre classe intérieur qui écoute mon bouton 'submit' pour envoyer le formulaire. Mais les info sont dans les textfield du panel qui à été modifié dans l'autre classe intérieure donc je n'arrive pas à y accéder.
Voici le code:
Merci d'avance pour votre aide.
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 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class ContactsPanel extends JPanel { public JPanel Panel1 = new BoxPanel(false); public JPanel Panel2 = new JPanel(); public ContactsPanel() { setLayout (new BoxLayout(this,BoxLayout.X_AXIS)); // création de sous panel dans Panel1 et Panel2 avec des éléments à l'intérieur this.add(Panel1); this.add(Panel2); } class ButtonAddPersonListener implements ActionListener{ public void actionPerformed(ActionEvent e) { JPanel PanelAddPerson = new BoxPanel(false); PanelAddPerson.setBorder (BorderFactory.createLineBorder(Color.gray,2)); String[] tab_string = {"First Name", "Last Name", "Phone", "Mobile", "Mail", "Address"}; JPanel[] tab_panel = new JPanel[tab_string.length]; //boucle qui créer un panel pour chaque label+textfield for(int i = 0; i < tab_string.length; i++) { tab_panel[i] = new JPanel(); JLabel label = new JLabel (tab_string[i]+": "); label.setPreferredSize(new Dimension(100,40)); tab_panel[i].add(label); if(tab_string[i].compareTo("Address") != 0) { JTextField text = new JTextField (15); tab_panel[i].add(text); } else{ JTextArea text = new JTextArea (4,15); tab_panel[i].add(text); } PanelAddPerson.add (tab_panel[i]); } //Ajout du bouton submeit à la fin du formulaire JPanel PanelAddPersonSubmit = new JPanel(); JButton AddPersonSubmitButton = new JButton ("Submit"); AddPersonSubmitButton.addActionListener(new ButtonSubmitAddPersonListener()); PanelAddPersonSubmit.add(AddPersonSubmitButton); PanelAddPerson.add (PanelAddPersonSubmit); //on enlève le panel qui été affiché et on le remplace par celui du formulaire MainClass.open.Contacts.remove(2); MainClass.open.Contacts.add(PanelAddPerson, 2); MainClass.open.tp.repaint(); } } class ButtonSubmitAddPersonListener implements ActionListener{ public void actionPerformed(ActionEvent e) { Panel2.getComponent(1). // je voudrais accéder aux textfield de PanelAddPerson (lui même composé de petits panel : label + textfield) } } }
Partager