Bonjour,
Ma question est assez difficile à expliquer...
Le but est que l'utilisateur de l'application n'accède à ses fonctionnalités que s'il connait un certain mot de passe. Pour ce faire, j'ai crée une classe PanelConnexion qui contient le panneau de connexion. Sur celui-ci, il y a un ActionListener qui détecte si le mot de passe est bon ou pas.
J'aimerais que le container principal change dans le cas ou le mot de passe est correcte. Mais je ne trouve pas comment faire, étant donné que le panneau de connexion est externe à la classe de la fenêtre principale.
Voilà mon code:
PanelConnexion (je ne sais pas quoi mettre au //TODO)
Fenêtre principale: (ne contient que le panneau de connexion pour le moment)
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 public class PanelConnexion extends JPanel{ private JLabel login, password; private JTextField fLogin; private JPasswordField fPassword; private JButton bValider; PanelConnexion(){ this.setBounds(0,0,200,100); login = new JLabel("Nom de compte :"); fLogin = new JTextField(20); password = new JLabel("Mot de passe :"); fPassword = new JPasswordField(20); bValider = new JButton("valider"); GridLayout connexionLayout = new GridLayout(0,2); this.setLayout(connexionLayout); this.add(login); this.add(fLogin); this.add(password); this.add(fPassword); this.add(bValider); GestionnaireBouton g = new GestionnaireBouton(); bValider.addActionListener(g); } private class GestionnaireBouton implements ActionListener{ public void actionPerformed(ActionEvent e){ String l = fLogin.getText(); String p = new String(fPassword.getPassword()); if(l.equals("admin") && p.equals("123")) { //TODO } else{ fLogin.setText(""); fPassword.setText(""); JOptionPane.showMessageDialog(null, "Identifiants incorrects", "Erreur", JOptionPane.ERROR_MESSAGE); } } } }
Merci beaucoup pour le temps que vous m'accorderez !
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 public class Fenetre extends JFrame{ private Container cont; private PanelConnexion pConnexion; public Fenetre(){ super("Application Pastel"); setBounds(200,200,500,500); MyWindowListener w = new MyWindowListener(); this.addWindowListener(w); PanelConnexion pConnexion = new PanelConnexion(); cont = getContentPane(); cont.setLayout(null); cont.add(pConnexion); setVisible(true); } private class MyWindowListener extends WindowAdapter{ public void windowClosing(WindowEvent e) {System.exit(0);} } }
Partager