Java tela workbench

Galera,

Poderiam me dar um help:

Estou tentando fazer uma telinha de um sisteminha para cadastrar uma empresa. Esta empresa possui um endereço e um atributo chamado endereco_id que é a chave estrangeira da tabela Empresa fazendo referencia a tabela Endereço (id).
Não estou conseguindo cadastrar a empresa por causa da chave estrangeira. Segue o código da tela GUI para ver se podem me ajudar no main. Estou apanhando para instanciar esta chave estrangeira (endereco_id).
O Erro que está dando no eclipse quando rodo a tela é este:

Cannot add or update a child row: a foreign key constraint fails (certidoes.empresa, CONSTRAINT fk_Empresa_Endereco1 FOREIGN KEY (Endereco_id) REFERENCES endereco (id) ON DELETE NO ACTION ON UPDATE NO ACTION)


package br.com.certidoes.gui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
//import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
//import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;

import br.com.certidoes.classes.Empresa;
import br.com.empresa.jdbc.ConexaoEmpJDBC;
import br.com.certidoes.util.ResultSetTable;

import javax.swing.JTextField;
import javax.swing.JLabel;


import javax.swing.JButton;


import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

import java.awt.event.ActionEvent;

public class TelaEmpresa2 extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField jtfNome;
	private JTextField jtfCnpj;
	private JTextField jtfEndereco_id;
//	private JTextField txtCadastroEmpresa;
//	private JLabel lblEndereco;
	
	final JPanel plistar;
	ResultSet rs;
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					TelaEmpresa2 frame = new TelaEmpresa2();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public TelaEmpresa2() {
		setTitle("Cadastro Empresa");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 800, 600);
		contentPane = new JPanel();
		contentPane.setBackground(new Color(210, 232, 232));
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		
		JPanel panel = new JPanel();
		panel.setBounds(50, 50, 450, 300);
		contentPane.add(panel);
		panel.setLayout(null);
		
		JPanel pCadastra = new JPanel();
		pCadastra.setBounds(10, 0, 764, 251);
		panel.add(pCadastra);
		pCadastra.setLayout(null);
		
		JLabel lblNome = new JLabel("Nome");
		lblNome.setBounds(45, 10, 51, 14);
		pCadastra.add(lblNome);
		
		jtfNome = new JTextField();
		jtfNome.setBounds(43, 30, 469, 20);
		pCadastra.add(jtfNome);
		jtfNome.setColumns(50);
		
		JLabel lblCnpj = new JLabel("Cnpj");
		lblCnpj.setBounds(572, 10, 147, 14);
		pCadastra.add(lblCnpj);
		
		jtfCnpj = new JTextField();
		jtfCnpj.setBounds(572, 30, 109, 20);
		pCadastra.add(jtfCnpj);
		jtfCnpj.setColumns(11);
		
		jtfEndereco_id = new JTextField();
		jtfEndereco_id.setBounds(572, 30, 109, 20);
		pCadastra.add(jtfEndereco_id);
		jtfEndereco_id.setColumns(11);
		
		
		
		
		plistar = new JPanel();
		plistar.setBounds(10, 262, 754, 279);
		panel.add(plistar);
		
		JButton btnCadastrar = new JButton("Cadastrar");
		btnCadastrar.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent arg0) {
				Empresa empresa = new Empresa();
				empresa.setNome(jtfNome.getText());
				empresa.setCnpj(jtfCnpj.getText());
//				empresa.setEndereco_id( Integer.parseInt(jtfEndereco_id.getText().substring(0, 8)));
//				empresa.setEndereco_id( Integer.parseInt(jtfEndereco_id.getText().substring(0, 8)));
				
			
				ConexaoEmpJDBC.obterInstancia().inserir(empresa);
//				ResultSet rs = ConexaoEmpJDBC.obterInstancia().listar();
	
				limparFlields();
				listar();
			}
		});
		
		
		btnCadastrar.setBounds(309, 217, 109, 23);
		pCadastra.add(btnCadastrar);
		listar();
		
	}
	
	private void limparFlields(){
		jtfNome.setText("");
		jtfCnpj.setText("");
		jtfEndereco_id.setText("");
	}
	
	private void listar() {
		plistar.removeAll();
		rs = ConexaoEmpJDBC.obterInstancia().listar();
		try {
			plistar.setLayout(null);
			ResultSetTable rst = new ResultSetTable(rs);
			rst.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);  
			rst.setPreferredScrollableViewportSize(new Dimension(240,140));  
	        JScrollPane scrollPane = new JScrollPane(rst);
	        scrollPane.setSize(734, 274);
	        scrollPane.setLocation(10, 5);
	        plistar.add(scrollPane);
		} catch (SQLException e) {
			System.err.println(e.getMessage());
		}
	}
}

o id que vc ta colocando no objeto empresa está no bancona tabela endereco ? ?

1 curtida

sim, eu consegui obg