Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

David Araujo

[Resolvido] Exception occurred during event dispatchi

Recommended Posts

buttonCadastrar.addActionListener(new ActionListener() {
			public void actionPerformed(final ActionEvent arg0) {
				executarBotaoCadastrar();
			}

private void executarBotaoCadastrar() {
		ProdutoVO produto = (ProdutoVO) listProdutosEstoque.getSelectedValue();
		if (produto == null) {
			JOptionPane.showMessageDialog(null, "Precisa selecionar um produto para cadastrar.", "Erro", JOptionPane.ERROR_MESSAGE);
		}else{
			this.estoqueVO.setCodigo(produto.getCodigo()); //NullPointerException nessa linha!!
			this.estoqueVO.setQuantidade(Integer.parseInt(textFieldQuantidade.getText()));
			
			EstoqueDAO estoqueDAO = new EstoqueDAO();
			try {
				estoqueDAO.inserir(estoqueVO);
			} catch (SQLException e) {
				JOptionPane.showMessageDialog(null, "Ocorreu um erro no acesso ao banco de dados", "Erro", JOptionPane.ERROR_MESSAGE);
				e.printStackTrace();
			}
		}
	}

 

bom galera, alguém pode me ajudar nesse trecho de código ae.. ele ta acusando NullPointerException na linha que eu comentei, e ja fiz de tudo, mas não consegui saber o porque!

Compartilhar este post


Link para o post
Compartilhar em outros sites

public class JDialogCadastroEstoque extends JDialog {

	private JTextField textFieldQuantidade;
	private JList listProdutosEstoque;
	private EstoqueVO estoqueVO;
	private JScrollPane scrollPaneListProdutos;
	
	public JDialogCadastroEstoque() {
		super();
		setBounds(100, 100, 245, 362);
		initComponents();
	}
	
	private void initComponents() {
		getContentPane().setLayout(null);
		setResizable(false);
		setTitle("Cadastrando Produto");

		final JPanel panelDadosProduto = new JPanel();
		panelDadosProduto.setLayout(null);
		panelDadosProduto.setBorder(new TitledBorder(null, "Dados:", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
		panelDadosProduto.setBounds(10, 10, 221, 284);
		getContentPane().add(panelDadosProduto);
		
		{
		scrollPaneListProdutos = new JScrollPane();
		scrollPaneListProdutos.setBounds(10, 49, 200, 225);
		panelDadosProduto.add(scrollPaneListProdutos);
			{
				listProdutosEstoque = new JList();
				scrollPaneListProdutos.setViewportView(listProdutosEstoque);
				atualizarListaProdutos();
			}
		}
		
		final JLabel labelQuantidade = new JLabel();
		labelQuantidade.setText("Quantidade:");
		labelQuantidade.setBounds(10, 23, 68, 20);
		panelDadosProduto.add(labelQuantidade);

		textFieldQuantidade = new JTextField();
		textFieldQuantidade.setBounds(84, 23, 44, 20);
		panelDadosProduto.add(textFieldQuantidade);

		final JButton buttonCancelar = new JButton();
		buttonCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(final ActionEvent arg0) {
				int botao = JOptionPane.showConfirmDialog(null, "Deseja sair sem efetuar o cadastro?", "Sair", JOptionPane.OK_CANCEL_OPTION);
				if(botao == 0){
					dispose();
				}
			}
		});
		
		buttonCancelar.setText("Cancelar");
		buttonCancelar.setBounds(125, 300, 106, 26);
		getContentPane().add(buttonCancelar);

		final JButton buttonCadastrar = new JButton();
		buttonCadastrar.setToolTipText("Cadastrar o produto no estoque e a sua quantidade.");
		buttonCadastrar.addActionListener(new ActionListener() {
			public void actionPerformed(final ActionEvent arg0) {
				executarBotaoCadastrar();
			}
		});
		buttonCadastrar.setText("Cadastrar");
		buttonCadastrar.setBounds(10, 300, 106, 26);
		getContentPane().add(buttonCadastrar);
	}

	
	
	private void atualizarListaProdutos() {
		ProdutoDAO produtoDAO = new ProdutoDAO();
		List<ProdutoVO> produtoVO = new ArrayList<ProdutoVO>();
		
		try {
			produtoVO = produtoDAO.listar(ProdutoDAO.LISTA_PRODUTOS);
		} catch (SQLException e) {
			e.printStackTrace();
			JOptionPane.showMessageDialog(null, "Ocorreu um erro no acesso ao banco de dados", "Erro", JOptionPane.ERROR_MESSAGE);
		}
		DefaultComboBoxModel modeloProdutos = new DefaultComboBoxModel(produtoVO.toArray());
		listProdutosEstoque.setModel(modeloProdutos);		
	}

	private void executarBotaoCadastrar() {
		ProdutoVO produto = (ProdutoVO) listProdutosEstoque.getSelectedValue();
		if (produto == null) {
			JOptionPane.showMessageDialog(null, "Precisa selecionar um produto para cadastrar.", "Erro", JOptionPane.ERROR_MESSAGE);
		}else{
			this.estoqueVO.setCodigo(produto.getCodigo()); //NullPointerException nessa linha!!
			this.estoqueVO.setQuantidade(Integer.parseInt(textFieldQuantidade.getText()));
			
			EstoqueDAO estoqueDAO = new EstoqueDAO();
			try {
				estoqueDAO.inserir(estoqueVO);
			} catch (SQLException e) {
				JOptionPane.showMessageDialog(null, "Ocorreu um erro no acesso ao banco de dados", "Erro", JOptionPane.ERROR_MESSAGE);
				e.printStackTrace();
			}
		}
	}
	
}

 

 

aqui está toda a classe!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como estoqueVO é um atruibuto da classe ele será inicializado com null.

Se voce não instanciar uma classe a atribuir a estoqueVO voce receberá NullPointerException.

 

Voce pode instanciar no construtor:

this.estoqueVO = new EstoqueVO();

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.