Problemas JComboBox retorna dados Banco de Dados Parte 3

0 respostas
java
L

Parte 3:

Código das Interfaces:

Cidade:
package visao;

import java.sql.SQLException;

import java.util.ArrayList;

import javax.swing.JOptionPane;

import modeloBeans.Cidade;

import modeloBeans.ModeloTabela;

import modeloConection.Conexao;

import modeloDao.DaoCidade;

public class TelaCidade extends javax.swing.JFrame {

Cidade cidade = new Cidade();
DaoCidade controleCidade = new DaoCidade();
Conexao conexao = new Conexao();
int flag = 0;
String registro;

public TelaCidade() {
    initComponents();
    preencherTabela("select * from tblcidade order by cid_codigo");
}

private void btnCidDeleteActionPerformed(java.awt.event.ActionEvent evt) {                                             
    int resposta = 0;
    resposta = JOptionPane.showConfirmDialog(rootPane,
            "Deseja realmente excluir");
    if (resposta == JOptionPane.YES_OPTION) {
        cidade.setCodigo(Integer.parseInt(txtCidCodigo.getText()));
        controleCidade.deleteCidade(cidade);
    }
    txtCidCodigo.setText("");
    txtCidNome.setText("");
    txtCidUf.setText("");
    btnCidNovo.setEnabled(true);
    txtCidPes.setEnabled(true);
    btnCidPes.setEnabled(true);
    btnCidEdit.setEnabled(false);
    btnCidDelete.setEnabled(false);
    txtCidPes.setText("");
    preencherTabela("select * from tblcidade order by cid_codigo");
}                                            

private void btnCidEditActionPerformed(java.awt.event.ActionEvent evt) {                                           
    flag = 2;
    txtCidNome.setEnabled(true);
    txtCidUf.setEnabled(true);
    btnCidNovo.setEnabled(false);
    btnCidEdit.setEnabled(false);
    btnCidDelete.setEnabled(false);
    btnCidSave.setEnabled(true);
    btnCidCancel.setEnabled(true);
    txtCidPes.setEnabled(false);
    btnCidPes.setEnabled(false);
    preencherTabela("select * from tblcidade order by cid_codigo");
}                                          

private void btnCidCancelActionPerformed(java.awt.event.ActionEvent evt) {                                             
    txtCidNome.setText("");
    txtCidUf.setText("");
    txtCidCodigo.setText("");
    txtCidPes.setText("");
    txtCidNome.setEnabled(false);
    txtCidUf.setEnabled(false);
    btnCidSave.setEnabled(false);
    btnCidCancel.setEnabled(false);
    btnCidNovo.setEnabled(true);
    btnCidEdit.setEnabled(false);
    btnCidDelete.setEnabled(false);
    btnCidPes.setEnabled(true);
    txtCidPes.setEnabled(true);
    preencherTabela("select * from tblcidade order by cid_codigo");
}                                            

private void btnCidSaveActionPerformed(java.awt.event.ActionEvent evt) {                                           
    if (txtCidUf.getText().isEmpty()
            && txtCidNome.getText().isEmpty()) {
        JOptionPane.showMessageDialog(null,
                "Preencha o NOME e o ESTADO para continuar", "Mensagem",
                JOptionPane.ERROR_MESSAGE);
        txtCidNome.requestFocus();
    } else if (txtCidNome.getText().isEmpty()) {
        JOptionPane.showMessageDialog(null,
                "Preencha o NOME para continuar", "Mensagem",
                JOptionPane.ERROR_MESSAGE);
        txtCidNome.requestFocus();
    } else if (txtCidUf.getText().isEmpty()) {
        JOptionPane.showMessageDialog(null,
                "Preencha o ESTADO para continuar", "Mensagem",
                JOptionPane.ERROR_MESSAGE);
        txtCidUf.requestFocus();
    } else {
        if (flag == 1) {
            cidade.setNome(txtCidNome.getText());
            cidade.setEstado(txtCidUf.getText());
            controleCidade.insertCidade(cidade);
            txtCidNome.setText("");
            txtCidUf.setText("");
            txtCidNome.setEnabled(false);
            txtCidUf.setEnabled(false);
            btnCidSave.setEnabled(false);
            btnCidCancel.setEnabled(false);
            btnCidNovo.setEnabled(true);
            btnCidEdit.setEnabled(false);
            btnCidDelete.setEnabled(false);
            txtCidPes.setEnabled(true);
            btnCidPes.setEnabled(true);
            preencherTabela("select * from tblcidade order by cid_codigo");
        } else {
            cidade.setCodigo(Integer.parseInt(txtCidCodigo.getText()));
            cidade.setNome(txtCidNome.getText());
            cidade.setEstado(txtCidUf.getText());
            controleCidade.editCidade(cidade);
            txtCidNome.setEnabled(false);
            txtCidUf.setEnabled(false);
            btnCidSave.setEnabled(false);
            preencherTabela("select * from tblcidade order by cid_codigo");
        }
    }
}                                          

private void btnCidPesActionPerformed(java.awt.event.ActionEvent evt) {                                          
    if (txtCidPes.getText().isEmpty()) {
        JOptionPane.showMessageDialog(null,
                "Preencha o NOME da cidade a ser pesquisada", "Mensagem",
                JOptionPane.ERROR_MESSAGE);
        txtCidPes.requestFocus();
    }
    cidade.setPesquisa(txtCidPes.getText());
    Cidade cid = controleCidade.buscaCidade(cidade);
    txtCidCodigo.setText(Integer.toString(cidade.getCodigo()));
    txtCidNome.setText(cid.getNome());
    txtCidUf.setText(cid.getEstado());
    btnCidEdit.setEnabled(false);
    btnCidDelete.setEnabled(false);
    btnCidCancel.setEnabled(true);
    preencherTabela("select * from tblcidade where cid_nome like '%"
    + cid.getPesquisa() + "%'");
}                                         

private void btnCidNovoActionPerformed(java.awt.event.ActionEvent evt) {                                           
    flag = 1;
    txtCidNome.setText("");
    txtCidUf.setText("");
    txtCidCodigo.setText("");
    txtCidPes.setText("");
    btnCidPes.setEnabled(false);
    txtCidPes.setEnabled(false);
    txtCidNome.setEnabled(true);
    txtCidUf.setEnabled(true);
    btnCidSave.setEnabled(true);
    btnCidCancel.setEnabled(true);
    btnCidNovo.setEnabled(false);
    btnCidEdit.setEnabled(false);
    btnCidDelete.setEnabled(false);
    txtCidPes.setEnabled(false);
    btnCidPes.setEnabled(false);
}                                          

private void jTableCidadesMouseClicked(java.awt.event.MouseEvent evt) {                                           
    String nome_cidade = "" + jTableCidades.getValueAt(
            jTableCidades.getSelectedRow(), 1);
    conexao.abreConexao();
    conexao.executaSQL("select * from tblcidade where cid_nome='"
            + nome_cidade + "'");
    try {
        conexao.rs.first();
        txtCidCodigo.setText(Integer.toString(
                conexao.rs.getInt("cid_codigo")));
        txtCidNome.setText(conexao.rs.getString("cid_nome"));
        txtCidUf.setText(conexao.rs.getString("cid_estado"));
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, "Erro ao selecionar os dados"
                + ex.getLocalizedMessage(), "Mensagem",
                JOptionPane.ERROR_MESSAGE);
    }
    btnCidNovo.setEnabled(false);
    txtCidPes.setEnabled(false);
    btnCidPes.setEnabled(false);
    btnCidEdit.setEnabled(true);
    btnCidDelete.setEnabled(true);
    conexao.fechaConexao();
}                                          

public void preencherTabela(String Sql) {
    ArrayList dados = new ArrayList();
    String[] colunas = new String[]{"Código", "Nome", "Estado"};
    conexao.abreConexao();
    conexao.executaSQL(Sql);
    try {
        conexao.rs.first();
        do {
            dados.add(new Object[]{conexao.rs.getInt("cid_codigo"),
                conexao.rs.getString("cid_nome"),
                conexao.rs.getString("cid_estado")});
        } while (conexao.rs.next());
    } catch (SQLException ex) {
        //JOptionPane.showMessageDialog(null,
        //"Busque por outro cidade para preencher a tabela","Mensagem",
        //JOptionPane.ERROR_MESSAGE);
    }
    ModeloTabela modelo = new ModeloTabela(dados, colunas);
    jTableCidades.setModel(modelo);
    jTableCidades.getColumnModel().getColumn(0).setPreferredWidth(140);
    jTableCidades.getColumnModel().getColumn(0).setResizable(false);
    jTableCidades.getColumnModel().getColumn(1).setPreferredWidth(350);
    jTableCidades.getColumnModel().getColumn(1).setResizable(false);
    jTableCidades.getColumnModel().getColumn(2).setPreferredWidth(204);
    jTableCidades.getColumnModel().getColumn(2).setResizable(false);
    jTableCidades.getTableHeader().setReorderingAllowed(false);
    jTableCidades.setAutoResizeMode(jTableCidades.AUTO_RESIZE_OFF);
    conexao.fechaConexao();
}

Pessoa:

package visao;

import java.sql.SQLException;

import java.util.ArrayList;

import javax.swing.JOptionPane;

import modeloBeans.ModeloTabela;

import modeloBeans.Pessoa;

import modeloConection.Conexao;

import modeloDao.DaoPessoa;

public class TelaPessoa extends javax.swing.JFrame {

Pessoa pessoa = new Pessoa();
DaoPessoa controlePessoa = new DaoPessoa();
Conexao conexao = new Conexao();
int flag = 0;
int resposta = 0;

public TelaPessoa() {
    initComponents();
    preencherCidades();
    preencherTabela("select pes_nome,pes_cpf,pes_rua,pes_numero,cid_nome "
    + "from tblpessoa p inner join tblcidade c on "
    + "p.cid_codigo = c.cid_codigo order by pes_nome");
}

private void btnPesSaveActionPerformed(java.awt.event.ActionEvent evt) {                                           
    if (txtPesNome.getText().isEmpty()) {
        JOptionPane.showMessageDialog(null,
                "Preencha o campo NOME para continuar", "Mensagem",
                JOptionPane.ERROR_MESSAGE);
        txtPesNome.requestFocus();
    } else { 
        if (flag == 1) {
            pessoa.setNome(txtPesNome.getText());
            pessoa.setCpf(txtPesCpf.getText());
            pessoa.setRg(txtPesRg.getText());
            pessoa.setRua(txtPesRua.getText());
            pessoa.setNumero(txtPesNumero.getText());
            pessoa.setComplemento(txtPesComplemento.getText());
            pessoa.setNomeCidade((String) CBPesCid.getSelectedItem());
           controlePessoa.insertPessoa(pessoa);
            preencherTabela("select pes_nome,pes_cpf,pes_rua,pes_numero,"
            + "cid_nome from tblpessoa p inner join tblcidade c on "
            + "p.cid_codigo = c.cid_codigo order by pes_nome");                
        } else {
                pessoa.setNome(txtPesNome.getText());
                pessoa.setCpf(txtPesCpf.getText());
                pessoa.setRg(txtPesRg.getText());
                pessoa.setRua(txtPesRua.getText());
                pessoa.setNumero(txtPesNumero.getText());
                pessoa.setComplemento(txtPesComplemento.getText());
                pessoa.setNomeCidade((String) CBPesCid.getSelectedItem());
                pessoa.setCodigo(Integer.parseInt(txtPesCodigo.getText()));
                controlePessoa.editPessoa(pessoa);
                preencherTabela("select pes_nome,pes_cpf,pes_rua,"
                + "pes_numero,cid_nome from tblpessoa p inner join "
                + "tblcidade c on p.cid_codigo = c.cid_codigo "
                + "order by pes_nome");
        }
    }
}

private void btnCidCancelActionPerformed(java.awt.event.ActionEvent evt) {

}                                          

private void btnPesNovoActionPerformed(java.awt.event.ActionEvent evt) {                                           
    flag = 1;
    txtPesCodigo.setText("");
    txtPesNome.setText("");
    txtPesCpf.setText("");
    txtPesRg.setText("");
    txtPesRua.setText("");
    txtPesComplemento.setText("");
    txtPesNumero.setText("");
    txtPesNome.setEnabled(true);
    txtPesCpf.setEnabled(true);
    txtPesRg.setEnabled(true);
    txtPesRua.setEnabled(true);
    txtPesComplemento.setEnabled(true);
    txtPesNumero.setEnabled(true);
    CBPesCid.setEnabled(true);
    txtPesPesquisa.setEnabled(false);
    btnPesNovo.setEnabled(false);
    btnPesSave.setEnabled(true);
    btnPesCancel.setEnabled(true);
    btnPesEdit.setEnabled(false);
    btnPesDelete.setEnabled(false);
    btnPesPesquisa.setEnabled(false);
}                                          

private void btnPesCancelActionPerformed(java.awt.event.ActionEvent evt) {                                             
    txtPesCodigo.setText("");
    txtPesNome.setText("");
    txtPesCpf.setText("");
    txtPesRg.setText("");
    txtPesRua.setText("");
    txtPesComplemento.setText("");
    txtPesNumero.setText("");
    txtPesPesquisa.setText("");
    txtPesCodigo.setEnabled(false);
    txtPesNome.setEnabled(false);
    txtPesCpf.setEnabled(false);
    txtPesRg.setEnabled(false);
    txtPesRua.setEnabled(false);
    txtPesComplemento.setEnabled(false);
    txtPesNumero.setEnabled(false);
    CBPesCid.setEnabled(false);
    btnPesNovo.setEnabled(true);
    btnPesSave.setEnabled(false);
    btnPesCancel.setEnabled(false);
    btnPesEdit.setEnabled(false);
    btnPesDelete.setEnabled(false);
    btnPesPesquisa.setEnabled(true);
    txtPesPesquisa.setEnabled(true);
}                                            

private void btnPesEditActionPerformed(java.awt.event.ActionEvent evt) {                                           
    flag = 2;    
}                                          

private void btnPesPesquisaActionPerformed(java.awt.event.ActionEvent evt) {                                               
    pessoa.setPesquisa(txtPesPesquisa.getText());
    Pessoa pes1 = controlePessoa.buscaPessoa(pessoa);
    txtPesCodigo.setText(String.valueOf(pes1.getCodigo()));
    txtPesNome.setText(pes1.getNome());
    txtPesCpf.setText(pes1.getCpf());
    txtPesRg.setText(pes1.getRg());
    txtPesRua.setText(pes1.getRua());
    txtPesComplemento.setText(pes1.getComplemento());
    txtPesNumero.setText(pes1.getNumero());
    CBPesCid.setSelectedItem(pes1.getNomeCidade());
    preencherTabela("select * from tblpessoa p, tblcidade c"
    +" where p.cid_codigo = c.cid_codigo and "+ 
    "p.pes_nome like '%"+pes1.getPesquisa()+"%'");
}                                              

private void btnPesDeleteActionPerformed(java.awt.event.ActionEvent evt) {                                             
    resposta = JOptionPane.showConfirmDialog(null,"Deseja realmente excluir",
    "Mensagem",JOptionPane.INFORMATION_MESSAGE);
    if (resposta==JOptionPane.YES_OPTION) {
        pessoa.setCodigo(Integer.parseInt(txtPesCodigo.getText()));
        controlePessoa.deletePessoa(pessoa);
    }        
    preencherTabela("select pes_nome,pes_cpf,pes_rua,pes_numero,cid_nome from tblpessoa p inner join tblcidade c on p.cid_codigo = c.cid_codigo order by pes_nome");
}                                            

private void jTablePessoasMouseClicked(java.awt.event.MouseEvent evt) {                                           
   String nome_pessoa = ""+jTablePessoas.getValueAt
    (jTablePessoas.getSelectedRow(), 1);
    conexao.abreConexao();        
    try {
        conexao.executaSQL("select * from tblpessoa where pes_nome = '"+nome_pessoa+"'");
        conexao.rs.next();
        txtPesCodigo.setText(String.valueOf(conexao.rs.getInt("pes_codigo")));
        txtPesNome.setText(conexao.rs.getString("pes_nome"));
        txtPesCpf.setText(conexao.rs.getString("pes_cpf"));
        txtPesRg.setText(conexao.rs.getString("pes_rg"));
        txtPesRua.setText(conexao.rs.getString("pes_rua"));            
        txtPesComplemento.setText(conexao.rs.getString("pes_complemento"));
        txtPesNumero.setText(conexao.rs.getString("pes_numero"));
        Conexao conexaoPesquisa = new Conexao();
        conexaoPesquisa.abreConexao();
        conexaoPesquisa.executaSQL("select * from tblcidade where cid_codigo = "+conexao.rs.getInt("cid_codigo"));
        conexaoPesquisa.rs.first(); 
        CBPesCid.setSelectedItem(conexaoPesquisa.rs.getString("cid_nome"));             
        conexaoPesquisa.fechaConexao();
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null,"Erro ao selecionar os dados\n"
        +ex.getLocalizedMessage(),"Mensagem",JOptionPane.ERROR_MESSAGE);
    }
}                                          

public void preencherCidades() {
    conexao.abreConexao();
    conexao.executaSQL("select * from tblcidade order by cid_nome");
    try {
        conexao.rs.first();
        CBPesCid.removeAllItems();
        do {
            CBPesCid.addItem(conexao.rs.getString("cid_nome"));
        } while (conexao.rs.next());
    } catch (SQLException ex) {
    }
    conexao.fechaConexao();
}

public void preencherTabela(String Sql){
    ArrayList dados = new ArrayList();
    String[] colunas = new String[]{"Nome","CPF","Rua","Numero","Cidade"};
    conexao.abreConexao();
    conexao.executaSQL(Sql);        
    try {
        conexao.rs.first();
        do {                
            dados.add(new Object[] {conexao.rs.getString("pes_nome"),
            conexao.rs.getString("pes_cpf"),
            conexao.rs.getString("pes_rua"),
            conexao.rs.getString("pes_numero"),
            conexao.rs.getString("cid_nome")});                
        } while(conexao.rs.next());
    } catch (SQLException ex) {
    }
    ModeloTabela modelo = new ModeloTabela(dados, colunas);
    jTablePessoas.setModel(modelo);
    jTablePessoas.getColumnModel().getColumn(0).setPreferredWidth(155);
    jTablePessoas.getColumnModel().getColumn(0).setResizable(false);
    jTablePessoas.getColumnModel().getColumn(1).setPreferredWidth(155);
    jTablePessoas.getColumnModel().getColumn(1).setResizable(false);
    jTablePessoas.getColumnModel().getColumn(2).setPreferredWidth(170);
    jTablePessoas.getColumnModel().getColumn(2).setResizable(false);
    jTablePessoas.getColumnModel().getColumn(3).setPreferredWidth(175);
    jTablePessoas.getColumnModel().getColumn(3).setResizable(false);
    jTablePessoas.getColumnModel().getColumn(4).setPreferredWidth(195);
    jTablePessoas.getColumnModel().getColumn(4).setResizable(false);
    jTablePessoas.getTableHeader().setReorderingAllowed(false);
    jTablePessoas.setAutoResizeMode(jTablePessoas.AUTO_RESIZE_OFF);
    conexao.fechaConexao();
}

A Mensagem que aparece é a seguinte:

“Error ao selecionar os dados. ResultSet não está posicionado corretamente, talvez você precise chamar o next.”

Criado 14 de outubro de 2019
Respostas 0
Participantes 1