[quote=edgar_coutinho]Nicholas! estou com o mesmo problema ! caso descubra como fazer se puder me ajudar !
Obrigado![/quote]
Boa Noite Edgar!
É o seguinte… para passar dados de uma tela “X” para uma tela “Y”, utilizei parâmetros na criação do objeto que chama a tela “Y”. E na tela “Y” criei Strings que recepcionam estes valores que são passados por parâmentro! Segue abaixo dois trechos de código. O primeiro é a tela “X” que possui uma JTable populada que ao ser selecionada uma linha e clicado no botão alterar instancia um JDialog (tela “Y”) com JTextFields com os valores correspondentes setados.
//Botão alterar
ImageIcon imageButtonAlterarCliente = new ImageIcon(getClass().getResource("imagens/img/alterar.png"));
alterar = new JButton(imageButtonAlterarCliente);
ferramentas.add(alterar);
alterar.setToolTipText("Alterar");
alterar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if (tabela.getSelectedRow()< 0){
JOptionPane.showMessageDialog(null,"Nenhum registro foi selecionado!",null,JOptionPane.ERROR_MESSAGE,null);
}
else
{
String cpf = (String)tabela.getValueAt(tabela.getSelectedRow(),1);
try{
String url = "jdbc:odbc:Dbpl";
String usuario = "";
String senha = "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con;
con = DriverManager.getConnection(url,usuario,senha);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM CadastroDeClientes WHERE CPF = '"+cpf+"'");
rs.next();
String nome = (rs.getString("NOME"));
String rg = (rs.getString("RG"));
String cnpj = (rs.getString("CNPJ"));
String insc = (rs.getString("INSC_ESTADUAL"));
String endereco = (rs.getString("ENDERECO"));
String cep = (rs.getString("CEP"));
String municipio = (rs.getString("MUNICIPIO"));
String uf = (rs.getString("UF"));
String telefone = (rs.getString("TELEFONE"));
String celular = (rs.getString("CELULAR"));
String ipr = (rs.getString("IPR"));
String fazenda = (rs.getString("FAZENDA"));
String municipio_fazenda = (rs.getString("MUNICIPIO_FAZENDA"));
String Tel_fazenda = (rs.getString("TEL_FAZENDA"));
String uf_fazenda = (rs.getString("UF_FAZENDA"));
String contato = (rs.getString("CONTATO"));
AlterarCliente Alterar = new AlterarCliente(null,"Alterar",true,""+nome+"",""+cpf+"",""+rg+"",""+cnpj+"",""+insc+"",""+endereco+"",""+cep+"",""+municipio+"",""+uf+"",""+telefone+"",""+celular+"",""+ipr+"",""+fazenda+"",""+municipio_fazenda+"",""+Tel_fazenda+"",""+uf_fazenda+"",""+contato+"");
Alterar.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
Alterar.setVisible(true);
}
catch(Exception event)
{
JOptionPane.showMessageDialog(null," ERRO\nFalha de comunicação interna!","DataBase",JOptionPane.ERROR_MESSAGE);
}
}}});
TELA DE ALTERAÇÃO QUE FOI INSTANCIADA
*Nesta tela de alteração basicamente recepcionei os valores que foram passados por parâmetros e depois setei nos JTextField’s. Após isto é só fazer um update no banco de dados.
public AlterarCliente(Frame owner,String title,boolean modal,String ValueNome,String ValueCpf,String ValueRg,String ValueCnpj,String ValueInsc,String ValueEndereco,String ValueCep,String ValueMunicipio,String ValueUf,String ValueTelefone,String ValueCelular,String ValueIpr,String ValueFazenda,String ValueMunicipioFazenda,String ValueTelFazenda,String ValueUfFazenda,String ValueContato) {
super(owner,title,modal);
Container tela = getContentPane();
tela.setLayout(null);
setSize (610,550);
setResizable(false);
setLocationRelativeTo(null);
PARA SETAR OS VALORES NOS JTEXTFIELDS
Tcnpj.setText(ValueCnpj);
JDIALOG DE ALTERAÇÃO DE CADASTRO - UPDATE
Nesta tela os JTextFields já estão todos preenchidos com os dados recepcionados, o usuário pode alterar o que quiser e após clicar no botão ok o banco faz um getText nos TextFields e armazena novamente no banco.
//Botão ok
Bok = new JButton ("Ok");
Bok.setBounds (150,450,100,25);
Bok.setFont(new Font("Arial",Font.PLAIN,12));
tela.add (Bok);
Bok.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
String url = "jdbc:odbc:Dbpl";
String usuario = "";
String senha = "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con;
con = DriverManager.getConnection(url,usuario,senha);
Statement st = con.createStatement();
st.executeUpdate("UPDATE CadastroDeClientes SET NOME='"+TextAltNome.getText()+"', RG='"+Trg.getText()+"',INSC_ESTADUAL='"+TinscEst.getText()+"',ENDERECO='"+Tendereco.getText()+"',CEP='"+Tcep.getText()+"',MUNICIPIO='"+Tmunicipio.getText()+"',UF='"+Tuf.getText()+"',TELEFONE='"+Ttelefone.getText()+"',CELULAR='"+Tcelular.getText()+"',IPR='"+TinscProdutor.getText()+"',FAZENDA='"+Tfazenda.getText()+"',MUNICIPIO_FAZENDA='"+TmunicipioFaz.getText()+"',TEL_FAZENDA='"+TtelFazenda.getText()+"',UF_FAZENDA='"+TufFaz.getText()+"',CONTATO='"+Tcontato.getText()+"' WHERE CPF = '"+Tcpf.getText()+"'");
TextAltNome.requestFocus();
JOptionPane.showMessageDialog(null," Alteração efetuada \n com sucesso!","DataBase",JOptionPane.INFORMATION_MESSAGE);
st.close();
con.close();
}
catch(Exception event)
{
JOptionPane.showMessageDialog(null," ERRO\nFalha de comunicação interna!","DataBase",JOptionPane.ERROR_MESSAGE);
}
dispose();
}});
Abraço
Nicholas Ferreira