bonjour,
je suis confronté a un petit probleme de passage de parametre au travers d'une structure type mvc. java etant nouveau pour moi, il est possible que je soit passé a coté d'un concept evident.
Pour resumer la mise en situation :
FramePrincipale est ma frame principale dans une classe
Pan_connexion est un Jpanel appelé par la FramePrincipale (parmis d'autre)
on y trouve un bouton valider qui est abonné a un listener
Dans ma classe listener(c'est mon controleur)j'appelle mon model(et l'action a realisé--->un controle de login+MDP avec un Jdialog pour remercier l'utilisateur)
App_PanConnexion est mon model : c'est ici qu'en plus d'afficher un dialogbox je voudrai ou pas griser des options du menu contenu dans ma FramePrincipale.
MA JFRAME
MA VUE
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 public class FramePrincipale extends JFrame { private static final long serialVersionUID = 1L; private JMenuBar jJMenuBar = null; private JMenu jMenu2 = null; private JMenuItem jMenuItem2 = null; private JMenuItem jMenuItem111 = null; private JMenuItem jMenuItem121 = null; private JMenu jMenu14 = null; private JMenuItem jMenuItem18 = null; private JMenuItem jMenuItem131 = null; private JMenu jMenu111 = null; private JMenu jMenu121 = null; private JMenuItem jMenuItem141 = null; private JMenu jMenu131 = null; private JMenuItem jMenuItem161 = null; private JMenuItem jMenuItem171 = null; /** * This is the default constructor * @throws ClassNotFoundException * @throws InstantiationException * @throws IllegalAccessException * @throws SQLException */ public FramePrincipale() throws SQLException, IllegalAccessException, InstantiationException, ClassNotFoundException { super(); initialize(); pack(); } /** * This method initializes this * * @return void * @throws ClassNotFoundException * @throws InstantiationException * @throws IllegalAccessException * @throws SQLException */ private void initialize() throws SQLException, IllegalAccessException, InstantiationException, ClassNotFoundException { this.setSize(756, 470); this.setPreferredSize(new Dimension(756, 470)); this.setResizable(false); this.setJMenuBar(getJJMenuBar()); this.setTitle("A voir"); this.setContentPane(new Connexion()); public JMenuBar getJJMenuBar() { if (jJMenuBar == null) { jJMenuBar = new JMenuBar(); jJMenuBar.setPreferredSize(new Dimension(20, 20)); jJMenuBar.add(getJMenu2()); jJMenuBar.add(getJMenu14()); jJMenuBar.add(getJMenu111()); jJMenuBar.add(getJMenu121()); jJMenuBar.add(getJMenu131()); } return jJMenuBar; } /** * This method initializes jMenu2 * * @return javax.swing.JMenu */ public JMenu getJMenu2() { if (jMenu2 == null) { jMenu2 = new JMenu(); jMenu2.setText("Fichiers"); jMenu2.setVerticalAlignment(SwingConstants.CENTER); jMenu2.add(getJMenuItem2()); jMenu2.add(getJMenuItem111()); jMenu2.add(getJMenuItem121()); jMenu2.setVisible(false); } return jMenu2; } //------------------------LE CODE EST VOLONTAIREMENT TRONQUE MERCI--------//
MON CONTROLLEUR
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 public class Connexion extends JPanel { private JLabel jLabel = null; private JLabel jLabel1 = null; private JTextField jTextField = null; private JButton jButton = null; private JPasswordField jPasswordField = null; private JLabel jLabel2 = null; public Connexion() throws SQLException, IllegalAccessException, InstantiationException, ClassNotFoundException { super(); initialize(); addListeners(); } {---------------LE CODE EST ALLEGE--------------------} public void addListeners() throws SQLException, IllegalAccessException, InstantiationException, ClassNotFoundException{ Listen_Connexion listen=new Listen_Connexion(this); jButton.addActionListener(listen); }
MON MODEL
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 public class Listen_Connexion implements ActionListener { App_Connexion application; Connexion parent ; public Listen_Connexion(Connexion parent) throws SQLException, IllegalAccessException, InstantiationException, ClassNotFoundException { //Constructeur this.parent=parent; this.application=new App_Connexion(parent); } public void actionPerformed(ActionEvent e) { Object sourceEvenement = e.getSource(); if (sourceEvenement instanceof JButton){ String labelJbut = ((JButton)sourceEvenement).getName(); if(labelJbut.equals("ButVal")) application.Authentification(); } } }
Désolé pour la longueure du post mais j'ai bien essayé de specifier dans le constructeur de ma classe connexion le parametre d'entrée Jframe (public Connexion(FramePrincipale frame).............etc) de facon a le recuperer dans mon model et pouvoir agir sur le menu mais je n'y arrive pas!
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 public class App_Connexion { Connexion parent; public App_Connexion(Connexion parent){ this.parent=parent; } public void Authentification(){ char[] password = parent.getJPasswordField().getPassword(); String pass=""; String ID=parent.getJTextField().getText(); for(int i=0;i<password.length;i++) pass= pass+password[i]; Connection conn=Access_JDBC.connecter(ID,pass); try { if(conn.isValid(5)){Message mess = new Message("Bienvenue "+ID, "Connexion"); if(ID.equals("TOTO")){ //ICI JAIMERAI METTRE QUELQUE CHOSE DU TYPE parent.getParent().getJMenu2.setvisible(true); } } } catch (SQLException e) { e.printStackTrace(); }catch(NullPointerException e){ Message mess = new Message("Connexion invalide", "Connexion"); e.printStackTrace(); } } }
Merci pour ceux qui arriveront a comprendre!![]()
Partager