2017-08-13 2 views
0

Lorsque l'utilisateur se connecte, le cadre de connexion se ferme et ouvre un autre cadre dans lequel j'ai besoin des informations de connexion de l'utilisateur pour obtenir les autres détails. Mes preparStatement & resultSet sont déjà définis en haut. Encore un débutant en javaComment récupérer la valeur du nom d'utilisateur du cadre de connexion à une autre image avec Java?

action de connexion auditeur

btnLogin.addActionListener((ActionEvent ae) -> { 
    if (ae.getSource().equals(btnLogin)) { 

    DB_connection db_connection = new DB_connection(); 
    String username = username_login_txtf.getText(); 
    String password = password_login_txtf.getText(); 

    try { 

    String sql = "SELECT * FROM user_profile as up WHERE up.username=? AND up.user_password=?"; 

    preStatement = db_connection.connect().prepareStatement(sql); 

    preStatement.setString(1, username); 
    preStatement.setString(2, password); 

    res = preStatement.executeQuery(); 

    boolean login = false; 

     while(res.next()) {   
      if(res.getString("username").equalsIgnoreCase(username) && res.getString("user_password").equalsIgnoreCase(password)) { 

     JOptionPane.showMessageDialog(loginPanel, "You have Logged in!"); 

     login = true; 

     fr.dispose(); 
     Main_menu.main(null); 
     break; 

     } ... 

Mon autre cadre où je dois récupérer que les données de connexion utilisateur spécifiques

btnSearch.addActionListener((ActionEvent ae) -> { 
     if (ae.getSource().equals(btnSearch)) { 

     // Right now i am getting the username value from another text field that I have set in this form but I want to retrieve that value directly form the login frame 
      String get_username = username_profile_txtf.getText(); 

       DB_connection db_connection = new DB_connection(); 

       try{ 

        preStatement = db_connection.connect().prepareStatement("Select * from user_profile where username = ?"); 

     // here I need the user login username from the login form 
        preStatement.setString(1, get_username); 

        res = preStatement.executeQuery(); 

        if (res.next()){ 

        String username = res.getString("username"); 
           username_profile_txtf.setText(username); 

         ... 
         } 

        preStatement.close(); 
        res.close(); 

       } catch(SQLException ex){ 

        System.out.println(ex.getMessage()); 
       } finally { 
         db_connection.disconnect(); 
       } 
      } 
     }); 
+0

Est-ce que votre cadre de connexion crée et affiche l'autre image? Ou sont-ils tous deux créés à partir d'une autre classe? –

+0

lorsque l'utilisateur se connecte, le cadre de connexion se ferme et ouvre une autre image qui a un bouton où j'ai besoin du nom d'utilisateur –

+0

Lorsque l'utilisateur se connecte, transmettre le nom d'utilisateur à la deuxième image en tant qu'attribut. Soit à travers un constructeur ou un setter. –

Répondre

0

Suivez le MVC -pattern.

Créez un calque de modèle qui est joyeusement un tas de classes DTO stupides améliorées avec une certaine infrastructure pour enregistrer Listener sur les modifications apportées au modèle. Créer un magasin pour le nom d'utilisateur/mot de passe là. Transférer le modèle en tant que dépendance à une classe d'interface graphique, afin que tous travaillent sur la même instance. (N'utilisez pas le Singelton Pattern pour accéder au modèle.)

+0

quoi? Je suis encore un débutant pourriez-vous expliquer dans plus de détails –

+0

Je pense que wikipedia est une meilleure ressource pour de longues explications: https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller –