Mensagem de Erro

5 respostas
A

Alguém pode me dizer o motivo da mensagem abaixo:

Exception in thread “main” java.lang.NullPointerException

at SwingExemplo3.(SwingExemplo3.java:37)

at SwingExemplo3.main(SwingExemplo3.java:67)

Este “erro” acontece ao executar o código.

5 Respostas

smota

O erro diz que vocÊ tentou utilizar um objeto não instanciado ou passou um parâmetro null onde deveria ser um objeto válido.

Poste o código se quiser uma ajuda mais detalhada.

A

Segue o código para maiores informações…

Grato!!

import javax.swing.<em>;

import java.awt.</em>;

import java.awt.event.*;
public class SwingExemplo3 extends JFrame implements ActionListener

{

JList lista;

JButton botaoAdicionar;

JTextField textField;

JPanel listPanel;

JPanel botaoPanel;

JScrollPane scroll;

DefaultListModel listModel;
public SwingExemplo3()
{
super("Treinamento em comandos JAVA");

textField = new JTextField("Digite seu nome.:");
botaoAdicionar = new JButton("Inserir");
listModel = new DefaultListModel();
botaoPanel = new JPanel();

// Adicionando um elemento inicial na lista

listModel.addElement("Inicio 1");
listModel.addElement("Inicio 2");
listModel.addElement("Inicio 3");

// Configurando a lista e adicionando no Painel

lista = new JList(listModel);
lista.setVisibleRowCount(3);

scroll = new JScrollPane(lista);

listPanel.add(scroll);
getContentPane().add(listPanel,BorderLayout.CENTER);

// adicionando texto e botao ao painel

botaoAdicionar.addActionListener(this);
botaoPanel.add(textField);
botaoPanel.add(botaoAdicionar);

getContentPane().add(botaoPanel,BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Exibe janela

pack();
setVisible(true);
}

public void actionPerformed(ActionEvent event)
{
if (textField.getText() != "")
{
    listModel.addElement(textField.getText());
    getContentPane().invalidate();
    getContentPane().validate();
}
}

public static void main (String args[])
{
SwingExemplo3 s = new SwingExemplo3();
}

}

dreamspeaker

Você está tentando utilizar o Jpanel listPanel sem instacia-lo, ou seja, não tem nenhum listPanel = new JPanel(…) no seu código.

B

Ressussitando o tópico!!

esse código do colega (da revista FAQ nº3) só esta faltando o

listPanel = new JPanel();

mas eu não entendi esse trecho (eu acho que ele tem um Bug):

public void actionPerformed&#40;ActionEvent event&#41;
    &#123;
        if &#40;textField.getText&#40;&#41; != &quot;&quot;&#41;  &#123;
    listModel.addElement&#40;textField.getText&#40;&#41;&#41;;
    
    getContentPane&#40;&#41;.invalidate&#40;&#41;;
            getContentPane&#40;&#41;.validate&#40;&#41;;
        &#125;        
    &#125;

cadê o Else dele??
se eu clico adicionar com a caixa em branco ele adiciona um espaço em branco e a caixa fica pequenininha!!
qual seria o melhor código para corrigir isso?

"programa completo":
import javax.swing.*; import java.awt.*; import java.awt.event.*;

public class SwingExemplo3Teste extends JFrame implements ActionListener
{
JList lista;
JButton botaoAdicionar;
JTextField textField;
JPanel panel;
JScrollPane scroll;
DefaultListModel listModel;

public SwingExemplo3Teste()
{
super("janela maluca de novo");

textField = new JTextField("Digita ae....");
botaoAdicionar = new JButton("Adicionar");
listModel = new DefaultListModel();
panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

// Adiciona um ítem inicial na lista

listModel.addElement("Ítem 1");
listModel.addElement("Ítem 2");
listModel.addElement("Ítem 3");

// Configura a lista

lista = new JList(listModel);
lista.setVisibleRowCount(3);
scroll = new JScrollPane(lista);

// Adiciona o campo de texto, a lista e o botão ao painel(panel)

botaoAdicionar.addActionListener(this);
panel.add(scroll);
panel.add(textField);
panel.add(botaoAdicionar);
getContentPane().add(panel);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// Mostra janela

pack();
setVisible(true);
}

public void actionPerformed(ActionEvent event)
{
if (textField.getText() != "") {
listModel.addElement(textField.getText());

getContentPane().invalidate();
getContentPane().validate();
}
}

public static void main (String args[])
{
SwingExemplo3Teste s = new
SwingExemplo3Teste();
}
}

B

Opa!
pesquisei melhor e encontrei aqui:
http://www.guj.com.br/forum/viewtopic.php?t=2649

falow!

Criado 21 de maio de 2003
Ultima resposta 14 de out. de 2003
Respostas 5
Participantes 4