Problemas com JPanel

2 respostas
C

Olá pessoal,
to montando uma tela de cadastro de produtos, criei o método para criar o panel, inserir os componentes e tudo mais...
mas quando vo roda ele me passa um erro de NullPointerException.

Alguém pode me uma força aí??

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import com.systemhaus.swing.carolina.swing.guj.SwingExemplo01;


public class EntradaDeProdutos {
	private CellConstraints cc = new CellConstraints();
	private JPanel panel= new JPanel();     
	private List<Entrada> listEntradas = new ArrayList<Entrada>();	

	private JLabel lblCodigoProduto;
	private JComboBox cboCodigoProduto;

	private JLabel lblDescricaoProduto;
	private JTextField tfDescricaoProduto;

	private JLabel lblQuantidade;
	private JTextField tfQuantidade;

	private JLabel lblDataCompra;
	private JTextField tfDataCompra;

	private JLabel lblFornecedor;
	private JTextField tfFornecedor;

	private JLabel lblCnpj;
	private JTextField tfCnpj;

	private JLabel lblNf;
	private JTextField tfNf;

	private JButton btnAdicionar;
	private JButton btnCancelar;

	public EntradaDeProdutos() {
		initComponents();
		initListners();
		initLayout();
		preparaTela();
	}

	private void initLayout() {
		panel.add(lblCodigoProduto, cc.xy(1, 1));
		panel.add(cboCodigoProduto, cc.xy(3, 1));
		panel.add(lblDescricaoProduto, cc.xy(1, 2));
		panel.add(tfDescricaoProduto, cc.xy(3, 2));
		panel.add(lblQuantidade, cc.xy(1, 3));
		panel.add(tfQuantidade, cc.xy(3, 3));
		panel.add(lblDataCompra, cc.xy(1, 4));
		panel.add(tfDataCompra, cc.xy(3,4));
		panel.add(lblFornecedor, cc.xy(1, 5));
		panel.add(tfFornecedor, cc.xy(3, 5));
		panel.add(lblCnpj, cc.xy(1, 6));
		panel.add(tfCnpj, cc.xy(3, 6));
		panel.add(lblNf, cc.xy(1, 7));
		panel.add(tfNf, cc.xy(3, 7));
		panel.add(btnAdicionar, cc.xy(1, 8));
		panel.add(btnCancelar, cc.xy(3, 8));
	}		

	private void initListners() {
		btnAdicionar.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				Entrada entrada = new Entrada();
				entrada.setQuantidade(tfQuantidade.getText());
				entrada.setDataDaCompra(tfDataCompra.getText());
				entrada.setFornecedor(tfFornecedor.getText());
				entrada.setCnpj(tfCnpj.getText());
				entrada.setNumeroNf(tfNf.getText());

				listEntradas.add(entrada);

				for (Entrada entrad : listEntradas) {
					System.out.println(entrad);
				}
				System.out.println(" ");
				System.out.println(" ");
				System.out.println(" ");
				System.out.println(" ");
			}
		});
	}


		private void preparaTela(){ 
			panel = new JPanel();   
//			panel.getContentPane().add(panel, BorderLayout.CENTER);
			panel.setPreferredSize(new Dimension(2000,750));
//			panel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
			panel.setVisible(true);   
		}

		private void initComponents() {
			panel = new JPanel();
			lblCodigoProduto = new JLabel("Código do Produto: ");
			cboCodigoProduto = new JComboBox();
			lblDescricaoProduto = new JLabel("Descrição do Produto: ");
			tfDescricaoProduto = new JTextField();
			lblQuantidade = new JLabel("Quantidade: ");
			tfQuantidade = new JTextField();
			lblDataCompra = new JLabel("Data da Compra: ");
			tfDataCompra = new JTextField();
			lblFornecedor = new JLabel("Fornecedor:");
			tfFornecedor = new JTextField ();
			lblCnpj = new JLabel("CNPJ:");
			tfCnpj = new JTextField();
			lblNf = new JLabel ("Compra Cf. NF: ");
			tfNf = new JTextField();
		}

		public static void main(String args[])   
		{   
			EntradaDeProdutos s = new EntradaDeProdutos();   
			s.preparaTela();  

		}   
	}

2 Respostas

doug

Olá

Acho que é seu btnAdicionar não foi inicializado.

Flwssss

C

certo…
Já inicializei o botão Adicionar e o Cancelar…
porém continua sem rodar…
estou achando estranho pois em outros projetos que fiz no método prepara tela eu conseguia
adicionar o panel através de

this.add (panel);

mas se tento usar o this.algumMetodo surge um erro,
e a opção q ele me dá é de criar o método add JPanel.

Criado 14 de setembro de 2009
Ultima resposta 14 de set. de 2009
Respostas 2
Participantes 2