Java.lang.NullPointerException

5 respostas
java
M

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)

5 Respostas

D

“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();
}
M
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

D

Tente assim:

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

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

P

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());
    }

}
Criado 12 de março de 2016
Ultima resposta 14 de mar. de 2016
Respostas 5
Participantes 3