Java.lang.NullPointerException

Estou passando um Bean como parâmetro, que em outra classe ja foi passado os dados para o Bean. Atribuindo-o em uma variável do tipo do objeto(Contato), e depois tentando popular um jTextField, e ele da java.lang.NullPointerException…

public class TelaAlterar extends javax.swing.JFrame {

Contato c;

public void popular(Contato c) {
    this.c = c;
}

public TelaAlterar() {
    initComponents();
    txtNome.setText(c.getNome());

}

//--------------------------------------------------------------------------------------------------------------

O Erro :

Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at br.gov.sinframt.telas.TelaAlterar.popular(TelaAlterar.java:20)
at br.gov.sinframt.telas.TelaAlterar.(TelaAlterar.java:26)
at br.gov.sinframt.telas.TelaAlterar$5.run(TelaAlterar.java:185)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

“Contato c” é null, portanto não é possivel fazer “c.getNome()”.
Só será diferente de null quando for executado o “popular”.

Sugestão:

public void popular(Contato c) {
    this.c = c;
    txtNome.setText(c.getNome());
}

public TelaAlterar() {
    initComponents();
}
public void popular(Contato c) {
        this.c = c;
        txtNome.setText(c.getNome());
    }

    public TelaAlterar() {
        initComponents();
        popular(c);

    }

Fiz assim, e ainda esta dando java.lang.NullPointerException

Tente assim:

public TelaAlterar() {
    initComponents();
    popular(new Contato());
}

Diego tentei da forma que disse, porem eu preciso pegar os dados da Bean Contato, ao posso dar new se não ele vai fazer um novo objeto da Bean, mais vlw pela resposta :slightly_smiling:
Ainda estou quebrando a cabeça pra encontrar uma solução :confused: kk

O fato é, você não pode referenciar método de um objeto que está nulo.

Essa verificação vai evitar o NullPointerException (mas não é uma solução definitiva no seu caso) . Creio que você precisa verificar em seu método, porque seu objeto está chegando nulo.

Contato c;

public void popular(Contato c) {
    this.c = c;
}

public TelaAlterar() {
    initComponents();
    
    if(c != null){
        txtNome.setText(c.getNome());
    }

}