2017-10-16 11 views
-1

J'ai défini une classe Logininfo pour stocker l'email et le mot de passe d'un utilisateur. J'obtiens l'email et le mot de passe d'une interface graphique. Il est mis dans la classe Logininfo en utilisant setMethods. Je suis en train de connecter la programmation à un serveur mysql (mysql n'est pas un problème ici). J'ai besoin de l'emailadres et du mot de passe afin que je puisse l'employer pour des questions dans d'autres GUI plus tard.Java: méthode d'appel, initialisée dans une classe, donne Nullpointerexception dans une autre classe

Ceci est la classe Logininfo

public class Logininfo { 

public static Emailadres emailadres = new Emailadres(); 
public static Password password = new Password(); 

public static class Emailadres 
{ 
    private String emailadres; 

    public Emailadres() 
    { 
     emailadres = " "; 
    } 

    public void setEmailadres(String emailadres) 
    { 
     this.emailadres = emailadres; 
    } 

    public String getEmailadres() 
    { 
     return(emailadres); 
    } 

} 

public static class Password 
{ 

    private String password ; 

    public Password() 
    { 
     password = " "; 
    } 

    public void setPassword(String password) 
    { 
     this.password = password; 
    } 

    public String getPassword() 
    { 
     return(password); 
    } 

} 

} 

Dans l'interface graphique de connexion J'utilise le setMethod pour stocker le emailadress et mot de passe.

public class Login extends javax.swing.JFrame { 

    Logininfo logininfo; 
    Logininfo.Emailadres emailadres = new Logininfo.Emailadres(); 
    Logininfo.Password password = new Logininfo.Password(); 

    private boolean validate_login(String email,String wachtwoord) { 

    emailadres.setEmailadres(email); 
    wachtwoord.setPassword(password); 

Plus tard, j'essaie de récupérer l'adresse email et le mot de passe dans une autre classe.

public class Account extends javax.swing.JFrame { 

Logininfo logininfo; 
Logininfo.EmailAdres emailadres; 
Logininfo.WachtWoord password; 

emailadres.getEmailadres(email); 
password.getPassword(password); 

Je reçois une exception Nullpointer ici. Je sais que vous devez créer une nouvelle instance de Logininfo dans l'écran de l'interface graphique de connexion. Cependant, dans la classe Compte, vous ne pouvez pas créer une autre instance. La classe publique n'est-elle pas censée être utilisée pour cela et devrais-je utiliser autre chose?

Toute aide serait appréciée

+3

Il semble que vous soyez en train d'apprendre Java. Je * recommande * fortement de lire [un tutoriel] (https://docs.oracle.com/javase/tutorial/java/javaOO/index.html) avant de me lancer dans une plus grande aventure. Par exemple, saviez-vous que tous les objets doivent être alloués explicitement, contrairement au C++? –

+0

Lorsque vous définissez le courrier électronique et le mot de passe, les méthodes requièrent un type String (les méthodes 'setEmailadres (String)' et 'setPassword (String)'). Où sont définis 'email' et' password'? – Pleasant94

+0

Ils sont dans un booléen pour valider la connexion de mysql. J'ai oublié de mettre le booléen là-dedans. Il est là maintenant. – Heijkoop

Répondre

0

email_adres dans votre classe Login est un champ d'instance de cette classe, et est sans aucun rapport avec emailadres champ d'instance de Account classe. Les deux pointeurs pointent vers différents endroits en mémoire.

Si vous voulez que l'instance de Account ait ces données à partir de l'instance Login, vous devez lui donner en quelque sorte.

+0

Hey j'ai changé le code quand je l'ai écrit pour la question. email_adres et pass_word sont supposés être emailadres et mot de passe. Désolé pour l'erreur – Heijkoop

+0

Peu importe, ce sont toujours des champs d'objets différents (même de classes différentes). –