galera tô fazendo um código, para cadastrar contatos, mas não consigo adicionar os dados de uma JComboBox no banco de dados mysql, o codigo ainda tah sendo desenvolvido... quem puder ajudar e explicar como se faz, agradeço mt... abraços a todos
public class Tela extends JFrame implements ActionListener, TableModelListener {
private static final long serialVersionUID = 1L;
private JButton btSalvar, btAlterar, btExcluir, btLimpar, btListar, btBuscar;
private JTextField txNome, txRua, txNumero, txCidade,txComplemento, txTelefone, txTelefone1, txTelefone2, txDtNas, txEmail, txBuscar;
private JPanel pnNorte, pnCentral, pnSul;
private JLabel lbNome, lbRua, lbNumero, lbCidade, lbTelefone,lbTelefone1, lbTelefone2,
lbDtNas, lbEmail, lbBuscar, lbBuscarNome, lbSexo, lbEstadoCivil, lbEstado, lbComplemento;
private JComboBox<Object> sexo;
private JComboBox<Object> estado;
private JComboBox<Object> estadoCivil;
private AgendaTableModel modelo;
private JTable tabela;
private List<Contato> contatoList = new ContatoController().listaContatos();
private int registroAtual = 0;
public Tela (){
super("Agenda");
setSize(840, 650);
pnNorte = new JPanel();
pnNorte.setLayout(null);
pnNorte.setBounds(0,0, 820, 160);
pnNorte.setBackground(Color.LIGHT_GRAY);
pnSul = new JPanel();
pnSul.setLayout(new BorderLayout());
pnSul.setBounds(0, 400, 820, 300);
pnSul.setBackground(Color.LIGHT_GRAY);
pnCentral = new JPanel();
pnCentral.setLayout(null);
pnCentral.setBounds(0, 0,0, 0);
pnCentral.setBackground(Color.LIGHT_GRAY);
lbNome = new JLabel(" Nome ");
lbNome.setBounds(10, 0, 130, 30);
lbEstadoCivil = new JLabel(" Estado Civil ");
lbEstadoCivil.setBounds(700, 0, 130, 30);
lbSexo = new JLabel(" Sexo ");
lbSexo.setBounds(10, 100 , 130, 30);
lbDtNas = new JLabel(" Data Nascimento ");
lbDtNas.setBounds(600, 50, 130, 30);
lbEmail = new JLabel(" Email ");
lbEmail.setBounds(10, 50, 130, 30);
lbRua = new JLabel(" Endereço ");
lbRua.setBounds(350, 100, 130, 30);
lbNumero = new JLabel(" Número ");
lbNumero.setBounds(740, 100, 130, 30);
lbCidade = new JLabel(" Cidade ");
lbCidade.setBounds(10, 150, 130, 30);
lbComplemento = new JLabel(" Complemento ");
lbComplemento.setBounds(420, 150, 130, 30);
lbEstado = new JLabel(" Estado ");
lbEstado.setBounds(700, 150, 130, 30);
lbTelefone = new JLabel(" Telefone ");
lbTelefone.setBounds(10, 200, 130, 30);
lbTelefone1 = new JLabel(" Telefone ");
lbTelefone1.setBounds(345, 200, 130, 30);
lbTelefone2 = new JLabel(" Telefone ");
lbTelefone2.setBounds(645, 200, 130, 30);
lbBuscar = new JLabel(" Pesquisar ");
lbBuscar.setBounds(360, 310, 150, 30);
lbBuscarNome = new JLabel(" Localizar por nome ");
lbBuscarNome.setBounds(10, 350, 150, 30);
lbBuscar.setFont(new Font("Courier New", Font.PLAIN, 16));
lbBuscar.setForeground(Color.BLACK);
pnNorte.add(lbNome);
pnNorte.add(lbEstadoCivil);
pnNorte.add(lbEmail);
pnNorte.add(lbRua);
pnNorte.add(lbDtNas);
pnNorte.add(lbNumero);
pnNorte.add(lbSexo);
pnCentral.add(lbCidade);
pnCentral.add(lbComplemento);
pnCentral.add(lbEstado);
pnCentral.add(lbTelefone);
pnCentral.add(lbTelefone1);
pnCentral.add(lbTelefone2);
pnCentral.add(lbBuscar);
pnCentral.add(lbBuscarNome);
txNome = new JTextField();
txNome.setBounds(10, 30, 570, 25);
txEmail = new JTextField();
txEmail.setBounds(10, 80, 520, 25);
txRua = new JTextField();
txRua.setBounds(230, 130, 440, 25);
txNumero = new JTextField();
txNumero.setBounds(715, 130, 100, 25);
txDtNas = new JTextField();
txDtNas.setBounds(570, 80, 245, 25);
txCidade = new JTextField();
txCidade.setBounds(10, 180, 355, 25);
txComplemento = new JTextField();
txComplemento.setBounds(400, 180, 150, 25);
txTelefone = new JTextField();
txTelefone.setBounds(10, 230, 200, 25);
txTelefone1 = new JTextField();
txTelefone1.setBounds(325, 230, 200, 25);
txTelefone2 = new JTextField();
txTelefone2.setBounds(615, 230, 200, 25);
txBuscar = new JTextField();
txBuscar.setBounds(150, 350, 500, 25);
pnNorte.add(txNome);
pnNorte.add(txRua);
pnNorte.add(txEmail);
pnNorte.add(txNumero);
pnCentral.add(txDtNas);
pnCentral.add(txCidade);
pnCentral.add(txTelefone);
pnCentral.add(txTelefone1);
pnCentral.add(txTelefone2);
pnCentral.add(txBuscar);
pnCentral.add(txComplemento);
btSalvar = new JButton(" Salvar ");
btSalvar.setBounds(10, 270, 150, 30);
btExcluir = new JButton(" Excluir ");
btExcluir.setBounds(175, 270, 150, 30);
btAlterar = new JButton(" Alterar ");
btAlterar.setBounds(342, 270, 150, 30);
btLimpar = new JButton(" Limpar ");
btLimpar.setBounds(505, 270, 150, 30);
btListar = new JButton(" Listar ");
btListar.setBounds(665, 270, 150, 30);
btBuscar = new JButton(" Buscar ");
btBuscar.setBounds(665, 347, 150, 30);
pnCentral.add(btSalvar);
pnCentral.add(btExcluir);
pnCentral.add(btAlterar);
pnCentral.add(btLimpar);
pnCentral.add(btListar);
pnCentral.add(btBuscar);
String opSexo [] =
{" Masculino ", " Feminino "};
sexo = new JComboBox<Object>( opSexo);
sexo.setBounds(10, 130, 150, 25);
sexo.setSelectedItem(true);
pnNorte.add(sexo);
String opEstado [] =
{" Acre ", " Alagoas"," Amazonas ", " Amapá " , " Bahia ", " Ceará ", " Distrito Federal ", " Espírito Santo ",
" Goiás ", " Maranhão ", " Mato Grosso ", " Mato Grosso do Sul ", " Minas Gerais ", " Pará ", " Paraíba ",
" Paraná ", " Pernanbuco ", " Piauí ", " Rio de Janeiro ", " Rio Grande do Norte ", " Rio Grande do Sul ",
" Rondônia ", " Rorâima ", " Santa Catarina ", " São Paulo ", " Sergipe ", " Tocantins "};
estado = new JComboBox<Object>( opEstado);
estado.setBounds(615, 180, 200, 25);
estado.setSelectedItem(true);
pnCentral.add(estado);
String opEstadoCivil [] =
{" Solteiro(a) ", " Casado(a) ", " Divorciado(a) ", " Viúvo(a)"};
estadoCivil = new JComboBox<Object>( opEstadoCivil);
estadoCivil.setBounds(665, 30, 150, 25);
estadoCivil.setSelectedItem(true);
pnNorte.add(estadoCivil);
modelo = new AgendaTableModel();
modelo.addTableModelListener(this);
// modelo.addListaDeContatos(contatoList);
modelo.addContato(new Contato());
tabela = new JTable();
tabela.setModel(modelo);
tabela.setPreferredScrollableViewportSize(new Dimension(500, 700));
tabela.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(tabela);
pnSul.add(scrollPane);
getContentPane().add(pnNorte);
getContentPane().add(pnSul);
getContentPane().add(pnCentral);
btSalvar.addActionListener(this);
btAlterar.addActionListener(this);
btBuscar.addActionListener(this);
btExcluir.addActionListener(this);
btLimpar.addActionListener(this);
btListar.addActionListener(this);
}
private void Alterar() {
ContatoController cc = new ContatoController();
long id = contatoList.get(registroAtual).getId();
try {
cc.alterar(id, txNome.getText(), txEmail.getText(), txDtNas.getText(), txTelefone.getText(),
txTelefone1.getText(), txTelefone2.getText(), txNumero.getText(), txRua.getText(), txCidade.getText(),
sexo.getSelectedItem(), estado.getSelectedItem(), estadoCivil.getSelectedItem(), txComplemento.getText());
JOptionPane.showMessageDialog(this, "Contato alterado com sucesso!");
limpar();
contatoList = new ContatoController().listaContatos();
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, "Nao foi possivel alterar contato!\n" + e.getLocalizedMessage());
} catch (ParseException e) {
JOptionPane.showMessageDialog(this, "Data possui formato inválido!\n" + e.getLocalizedMessage());
}
}
private void salvar() {
ContatoController cc = new ContatoController();
try {
cc.salvar(txNome.getText(), txEmail.getText(), txDtNas.getText(), txTelefone.getText(),
txTelefone1.getText(), txTelefone2.getText(), txNumero.getText(), txRua.getText(), txCidade.getText(),
sexo.getSelectedItem(), estado.getSelectedItem(), estadoCivil.getSelectedItem(), txComplemento.getText());
JOptionPane.showMessageDialog(this, "Contato salvo com sucesso!");
limpar();
contatoList = new ContatoController().listaContatos();
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, "Nao foi possivel salvar contato!\n" + e.getLocalizedMessage());
} catch (ParseException e) {
JOptionPane.showMessageDialog(this, "Data possui formato inválido!\n" + e.getLocalizedMessage());
}
}
private void excluir() {
ContatoController cc = new ContatoController();
long id = contatoList.get(registroAtual).getId();
try {
cc.excluir(id);
JOptionPane.showMessageDialog(this, "Contato excluido com sucesso!");
limpar();
contatoList = new ContatoController().listaContatos();
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, "Nao foi possivel excluir o contato!\n" + e.getLocalizedMessage());
}
}
private void localizar() {
ContatoController cc = new ContatoController();
try {
Contato c = cc.buscaContatoPorNome(txBuscar.getText());
txNome.setText(c.getNome());
txEmail.setText(c.getEmail());
txDtNas.setText(new SimpleDateFormat("dd/MM/yyyy").format(c.getDtNas()));
txTelefone.setText(c.getTelefone());
txTelefone1.setText(c.getTelefone1());
txRua.setText(c.getRua());
txNumero.setText(c.getNumero());
txCidade.setText(c.getCidade());
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, "Ocorreu um erro, tente novamente!\n" + e.getLocalizedMessage());
} catch (NullPointerException e){
JOptionPane.showMessageDialog(this, "Contato não localizado ou não existe!\n" + e.getLocalizedMessage());
}
}
private void limpar() {
txNome.setText("");
txEmail.setText("");
txDtNas.setText("");
txBuscar.setText("");
txTelefone.setText("");
txTelefone1.setText("");
txRua.setText("");
txNumero.setText("");
txCidade.setText("");
}
public void actionPerformed(ActionEvent acao) {
if(acao.getSource() == btSalvar){
salvar();
}
else if(acao.getSource() == btBuscar){
localizar();
}
else if(acao.getSource() == btExcluir){
excluir();
}
else if(acao.getSource() == btLimpar){
limpar();
}
else if (acao.getSource() == btListar){
}
else if (acao.getSource() == btAlterar){
Alterar();
}
}
public static void main(String[] args) {
Tela tl = new Tela();
tl.setVisible(true);
tl.setLocationRelativeTo(null);
tl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void tableChanged(TableModelEvent arg0) {
}
}
public class ContatoDao extends GenericDao {
public void salvar(Contato c) throws SQLException{
String insertContato = " INSERT INTO CONTATO ( nome, data_nascimento, numero, rua, cidade, email, sexo, estado, estado_civil, complemento) VALUES (?,?,?,?,?,?,?,?,?,?)";
String insertTelefones = "INSERT INTO TELEFONE (id, idTelefone) VALUES (?,?,?)";
int id = save(insertContato, c.getNome(), c.getDtNas(), c.getNumero(), c.getRua(), c.getCidade(), c.getEmail(), c.getSexo(), c.getEstado(), c.getEstadoCivil(), c.getComplemento());
if (id > -1){
save(insertTelefones, id, c.getTelefone());
save(insertTelefones, id, c.getTelefone1());
save(insertTelefones, id, c.getTelefone2());
}
}
public void alterar (Contato c) throws SQLException{
String update = "UPDATE CONTATOS" +
" SET nome = ?, data_nascimento =?, numero=?, rua=? , cidade=? , email =?, sexo=?, estado=?, estado_civil=?, complemento=? " +
" WHERE id =?";
update(update,c.getNome(), c.getDtNas(), c.getNumero(), c.getRua(), c.getCidade(), c.getEmail(), c.getSexo(), c.getEstado(), c.getEstadoCivil(), c.getComplemento());
// delete("DELETE FROM TELEFONE WHERE id = ?", c.getId());
// String updates = "INSERT INTO TELEFONE (id, telefone) values (?,?)";
// save(updates, c.getId(), c.getTelefone());
}
public void excluir (long id) throws SQLException{
String delete = "DELETE FROM CONTATO WHERE id = ?";
delete(delete, id);
}
public List<Contato> findContatos() throws SQLException{
List<Contato> contatos = new ArrayList<Contato>();
String select= "SELECT c.id, c.nome, c.data_nascimento, c.numero, c.rua, c.cidade, c.email "; //, t.idTelefone, " +
// "FROM Contato c " +
// "LEFT OUTER JOIN TELEFONE t on c.id = t.id";
PreparedStatement stmt = getConnection().prepareStatement(select);
ResultSet rs = stmt.executeQuery();
while (rs.next()){
Contato c = new Contato();
String[] dados = new String[7];
c.setId(rs.getLong("id"));
dados [0] = (rs.getString("nome"));
c.setEmail(rs.getString("email"));
c.setDtNas(rs.getDate("data_nascimento"));
c.setNumero(rs.getString("numero"));
c.setRua(rs.getString("rua"));
c.setCidade(rs.getString("cidade"));
c.setTelefone(rs.getString("telefone"));
c.setTelefone1(rs.getString("telefone1"));
contatos.add(c);
}
rs.close();
stmt.close();
return contatos;
}
public Contato finfByName(String nome) throws SQLException{
String select = "SELECT c.id, c.nome, c.data_nascimento, c.numero, c.rua, c.cidade,c.email, t.idTelefone " +
"FROM Contato c" +
"LEFT OUTER JOIN TELEFONE t on c.id = t.id WHERE c.nome LIKE ?";
Contato contato = null;
PreparedStatement stmt = getConnection().prepareStatement(select);
stmt.setString(1, "%"+nome+"%");
ResultSet rs = stmt.executeQuery();
while (rs.next()){
Contato c = new Contato();
c.setId(rs.getLong("id"));
c.setNome(rs.getString("nome"));
c.setEmail(rs.getString("email"));
c.setDtNas(rs.getDate("data_nascimento"));
c.setNumero(rs.getString("numero"));
c.setRua(rs.getString("rua"));
c.setCidade(rs.getString("cidade"));
c.setTelefone(rs.getString("telefone"));
c.setTelefone1(rs.getString("telefone1"));
}
rs.close();
stmt.close();
return contato;
}
}