E ai galera do forum vcs podem dar uma ajudinha?
tenho um banco de dado onde eu cadastro cidade e estado e uma aplicação no netbeans q contem dois jframe um de cadastro de Cidade e outro de consulta Estado o problema é o seguinte o meu jframe Cadastro de cidade tem um botao de pesquisa q ao clicar nele eu chamo minha jframe de Consultar Estado até ai blz o caso é que nessa jframe tem um jtable eu quero que os dados ao clicar na linha da jtable setasse no jframe da outra jframe de cadastro de cidade
alguem pode me ajudar nesse problema...
obs estou usando o padrão Dao......
MEU CODIGO BD CADCIDADE
CREATE TABLE ESTADO(
IDE INT NOT NULL AUTO_INCREMENT,
nESTADO VARCHAR(50),
SIGLA VARCHAR(2),
CONSTRAINT ESTADO_CIDADE PRIMARY KEY(IDE)
);
CREATE TABLE CIDADE(
IDC INT NOT NULL AUTO_INCREMENT,
IDE INT NOT NULL,
nCIDADE VARCHAR(50),
CONSTRAINT CIDADE PRIMARY KEY(IDC),
CONSTRAINT CIDADE_ESTADO FOREIGN KEY(IDE) REFERENCES ESTADO(IDE));
essa ea classe q uso para faze conexao com o bd
package cad.conexaoBD;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author Administrador
*/
public class Conexao {
public static Connection getConexao() throws SQLException {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Conectado ao banco");
return DriverManager.getConnection("jdbc:mysql://localhost/", "root", "");
} catch (ClassNotFoundException e) {
throw new SQLException(e.getMessage());
}
}
}
package cad.logica;
/**
*
* @author Administrador
*/
public class CadEstado {
private Long idE;
private String nEstado;
private String sigla;
public Long getIdE() {
return idE;
}
public void setIdE(Long idE) {
this.idE = idE;
}
public String getnEstado() {
return nEstado;
}
public void setnEstado(String nEstado) {
this.nEstado = nEstado;
}
public String getSigla() {
return sigla;
}
public void setSigla(String sigla) {
this.sigla = sigla;
}
}
package cad.logica;
/**
*
* @author Administrador
*/
public class CadCidade {
private Long idC;
private Long idE;
private String nCidade;
public Long getIdC() {
return idC;
}
public void setIdC(Long idC) {
this.idC = idC;
}
public Long getIdE() {
return idE;
}
public void setIdE(Long idE) {
this.idE = idE;
}
public String getnCidade() {
return nCidade;
}
public void setnCidade(String nCidade) {
this.nCidade = nCidade;
}
}
esse eo classe estadoDao do meu aplicativo
package cad.Dao;
import cad.conexaoBD.Conexao;
import cad.logica.CadEstado;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Administrador
*/
public class CadEstadoDao {
private Connection conexao;
public CadEstadoDao() throws SQLException{
this.conexao = Conexao.getConexao();
}
public void adiciona(CadEstado p1) throws SQLException{
String sql = "insert into estado(nEstado, sigla)" +
"values(?,?)";
//prepara conexao
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setString(1, p1.getnEstado());
stmt.setString(2, p1.getSigla());
//Executa o código sql
stmt.execute();
stmt.close();
}
//metodo de pesquisa
public List<CadEstado>getLista(String nome) throws SQLException{
String sql = "select * from contato where nEstado like ?";
PreparedStatement stmt = this.conexao.prepareStatement(sql);
stmt.setString(1, nome);
ResultSet rs = stmt.executeQuery();
// List<Contato> minhaLista = new ArrayList<Contato>();
List<CadEstado>minhaLista = new ArrayList<CadEstado>();
while(rs.next()){
CadEstado p1 = new CadEstado();
p1.setIdE(Long.valueOf(rs.getString("idE")));
p1.setnEstado(rs.getString("nEstado"));
p1.setSigla(rs.getString("sigla"));
minhaLista.add(p1);
}
rs.close();
stmt.close();
return minhaLista;
}
}
esse eo classe cidadeDao do meu aplicativo
package cad.Dao;
import cad.conexaoBD.Conexao;
import cad.logica.CadCidade;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Administrador
*/
public class CadCidadeDao {
private Connection conexao;
public CadCidadeDao() throws SQLException{
this.conexao = Conexao.getConexao();
}
public void adiciona(CadCidade c1) throws SQLException{
String sql = "insert into cidade(idE, nCidade)" +
"values(?,?)";
//prepara conexao
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setLong(1, c1.getIdE());
stmt.setString(2, c1.getnCidade());
//Executa o código sql
stmt.execute();
stmt.close();
}
//metodo de pesquisa
public List<CadCidade>getLista(String nome) throws SQLException{
String sql = "select * from cidade where nCidade like ?";
PreparedStatement stmt = this.conexao.prepareStatement(sql);
stmt.setString(1, nome);
ResultSet rs = stmt.executeQuery();
// List<Contato> minhaLista = new ArrayList<Contato>();
List<CadCidade>minhaLista = new ArrayList<CadCidade>();
while(rs.next()){
CadCidade c1 = new CadCidade();
c1.setIdC(Long.valueOf(rs.getString("idE")));
c1.setIdE(Long.valueOf(rs.getString("idC")));
c1.setnCidade(rs.getString("nEstado"));
minhaLista.add(c1);
}
rs.close();
stmt.close();
return minhaLista;
}
}
esse é o meu jframe de cadastro de cidade
package cad.form;
/**
*
* @author Administrador
*/
public class formCadCidade extends javax.swing.JFrame {
/** Creates new form formCadCidade */
public formCadCidade() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jtfCod = new javax.swing.JTextField();
jtfNcidade = new javax.swing.JTextField();
jtfCodEstado = new javax.swing.JTextField();
jtfNestado = new javax.swing.JTextField();
jtfSigla = new javax.swing.JTextField();
jBPesquisar = new javax.swing.JButton();
jPanel3 = new javax.swing.JPanel();
jBSalvar = new javax.swing.JButton();
jBAlterar = new javax.swing.JButton();
jbCancelar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("Código:");
jLabel2.setText("Cidade:");
jLabel3.setText("Código Est:");
jLabel4.setText("Estado:");
jLabel5.setText("UF:");
jBPesquisar.setText("Pesquisar");
jBPesquisar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jBPesquisarActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel3)
.addComponent(jLabel4)
.addComponent(jLabel2)))
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(12, 12, 12)
.addComponent(jLabel1))
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel5)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jtfCod, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jtfNcidade, javax.swing.GroupLayout.DEFAULT_SIZE, 243, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(jtfCodEstado, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jBPesquisar))
.addComponent(jtfNestado))
.addComponent(jtfSigla, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(34, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGap(4, 4, 4)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jtfCod, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jtfNcidade, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jtfCodEstado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jBPesquisar))
.addGap(18, 18, 18)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jtfNestado, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 12, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jtfSigla, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25))
);
jBSalvar.setText("Salvar");
jBAlterar.setText("Alterar");
jbCancelar.setText("Cancelar");
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(25, 25, 25)
.addComponent(jBSalvar)
.addGap(18, 18, 18)
.addComponent(jBAlterar)
.addGap(18, 18, 18)
.addComponent(jbCancelar)
.addContainerGap(90, Short.MAX_VALUE))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addContainerGap(26, Short.MAX_VALUE)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jBSalvar)
.addComponent(jBAlterar)
.addComponent(jbCancelar))
.addGap(21, 21, 21))
);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jPanel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);
getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
pack();
}// </editor-fold>
private void jBPesquisarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
formConsEstado f = new formConsEstado();//Aqui estou instanciando meu jframe formConsEstado
f.show();//aqui faz aparecer meu jframe formConsEstado
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new formCadCidade().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jBAlterar;
private javax.swing.JButton jBPesquisar;
private javax.swing.JButton jBSalvar;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JButton jbCancelar;
private javax.swing.JTextField jtfCod;
private javax.swing.JTextField jtfCodEstado;
private javax.swing.JTextField jtfNcidade;
private javax.swing.JTextField jtfNestado;
private javax.swing.JTextField jtfSigla;
// End of variables declaration
}
package cad.form;
import cad.logica.CadEstado;
import java.util.List;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Administrador
*/
public class formConsEstado extends javax.swing.JFrame {
DefaultTableModel tmConsEstado = new DefaultTableModel(null, new String[]{"Código",
"Estado", "Sigla"});
List<CadEstado> estado;
ListSelectionModel lsmEstado;
/** Creates new form formConsEstado */
public formConsEstado() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jtfPesquisar = new javax.swing.JTextField();
jBPesquisar = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jtTabelaConsEst = new javax.swing.JTable();
jBPrimeiro = new javax.swing.JButton();
jBanterior = new javax.swing.JButton();
jBProximo = new javax.swing.JButton();
jBUltimo = new javax.swing.JButton();
jBCancelar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jBPesquisar.setText("Pesquisar");
jtTabelaConsEst.setModel(tmConsEstado);
jScrollPane1.setViewportView(jtTabelaConsEst);
jBPrimeiro.setText("<<");
jBPrimeiro.setToolTipText("Primeiro Registro");
jBanterior.setText("<");
jBanterior.setToolTipText("Anterior");
jBProximo.setText(">");
jBProximo.setToolTipText("Próximo");
jBUltimo.setText(">>");
jBUltimo.setToolTipText("Último Registro");
jBCancelar.setText("Cancelar");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(33, 33, 33)
.addComponent(jtfPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, 214, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jBPesquisar))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
.addComponent(jBPrimeiro)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jBanterior)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jBProximo)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jBUltimo)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jBCancelar))
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(24, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(25, 25, 25)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jtfPesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jBPesquisar))
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jBPrimeiro)
.addComponent(jBanterior)
.addComponent(jBProximo)
.addComponent(jBUltimo)
.addComponent(jBCancelar))
.addContainerGap(16, Short.MAX_VALUE))
);
getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER);
pack();
}// </editor-fold>
private void jBPesquisarActionPerformed(java.awt.event.ActionEvent evt) {
try {
listarEstados();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Problema no campo de pesquisa" + ex);
}
}
//metodo para fazer pesquisa e listar dados na jtable
public void listarEstados() throws SQLException{
CadEstadoDao dao = new CadEstadoDao();
estado = dao.getLista("%" + jtfPesquisar.getText()+ "%");
mostraPesquisa(estado);
}
private void mostraPesquisa(List<CadEstado> estado) {
if(estado.size() == 0){
JOptionPane.showMessageDialog(null, "Nenhum Cadastro encontrado!");
}
else{
String[] linha = new String[]{null, null, null, null, null, null};
for (int i = 0; i< contatos.size(); i++) {
tmConsEstado.addRow(linha);
tmConsEstado.setValueAt(estado.get(i).getIdE(), i, 0);
tmConsEstado.setValueAt(estado.get(i).getNEstado(), i, 1);
tmConsEstado.setValueAt(estado.get(i).getSigla(), i, 2);
}
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new formConsEstado().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton jBCancelar;
private javax.swing.JButton jBPesquisar;
private javax.swing.JButton jBPrimeiro;
private javax.swing.JButton jBProximo;
private javax.swing.JButton jBUltimo;
private javax.swing.JButton jBanterior;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jtTabelaConsEst;
private javax.swing.JTextField jtfPesquisar;
// End of variables declaration
}
se alguém poder me ajudar nessa parte eu agradeço
é so pra setar os dados da linha da jtable quando clicar em um jtextfield
desde ja agradeço