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.”