Transferencia de dados de um jframe para outro

9 respostas
J

Primeiramente, agradeço a todos se puderem me ajudar…

o meu problema é o seguinte…eu tenho uma tela de cadastro de cliente, a parte de cadastro esta feita…
porem quande eu vou fazer a parte de pesquisa…ja tentei de tudo…na hora que eu clico no botão pesquisar abre um novo frame onde
eu faço a pesquisa, porem eu não consigo trazer os dados da tabela que esta no frame pesquisar para o frame onde eu faço o cadastro…
agradeceria muito c alguem pudesse me ajudar… esses são os meus codigos de pesquisa!!!

frame pesquisa:

public class Pesq_cli extends javax.swing.JFrame {
    
    DefaultTableModel tmCli = new DefaultTableModel(null, new String[]{"cod_seq", "nome"});
    List<Cliente> cliente;
    ListSelectionModel lsmCli;
    
    public Pesq_cli() {
        initComponents();
        setLocationRelativeTo(null);
        dispose();
    }                     

    private void jbokActionPerformed(java.awt.event.ActionEvent evt) {                                     
       
         try {
            listaCli();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Não há Cliente com este Nome" + ex);
        }
    }                                    

    
    public void listaCli() throws SQLException {

        ClienteDAO dao = new ClienteDAO();
        cliente = dao.listar("%" + tfpesq.getText() + "%");
        mostraPesq(cliente);
    }
    
    private void mostraPesq(List<Cliente> cliente) {

        while (tmCli.getRowCount() > 0) {
            tmCli.removeRow(0);
        }
        if (cliente.size() == 0) {
            JOptionPane.showMessageDialog(null, "Não há Cliente com este Nome");
        } else {
            String[] linha = new String[]{null, null};
            for (int i = 0; i < cliente.size(); i++) {
                tmCli.addRow(linha);
                tmCli.setValueAt(cliente.get(i).getCodigo(), i, 0);
                tmCli.setValueAt(cliente.get(i).getNome(), i, 1);
            }
        }
    }

classe dao listar cliente:

public List<Cliente> listar(String nome) throws SQLException{
        
        String sql = "select * , date_format(data_nasc,'%d/%m/%Y') as dt from cad_cliente where nome like ?";
        List<Cliente> lista = new ArrayList<Cliente>();
    
            PreparedStatement ps = conexao.prepareStatement(sql);
            ps.setString(1, nome);
            ResultSet rs = ps.executeQuery();
            
            while(rs.next()){
                
                Cliente cliente = new Cliente();
                
                cliente.setCodigo(rs.getInt("cod_seq"));
                cliente.setNome(rs.getString("nome"));
                cliente.setCpf(rs.getString("cpf"));
                cliente.setRg(rs.getInt("rg"));
                cliente.setFone(rs.getString("tel_residencial"));
                cliente.setCel(rs.getString("tel_celular"));
                cliente.setDatan(rs.getString("dt"));
                cliente.setRua(rs.getString("rua"));
                cliente.setNumero(rs.getInt("numero"));
                cliente.setBairro(rs.getString("bairro"));
                cliente.setCidade(rs.getString("cidade"));
                cliente.setCep(rs.getString("cep"));
                cliente.setUf(rs.getString("uf"));
                cliente.setObs(rs.getString("observacao"));
                
                lista.add(cliente);
                
            }
        return lista;
    }

beans cliente:

public class Cliente {
   
    private int codigo, rg, numero;
    private String nome, cpf, fone, cel, rua, datan, bairro, cidade, cep, uf, obs;

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public String getCel() {
        return cel;
    }

    public void setCel(String cel) {
        this.cel = cel;
    }

    public String getCep() {
        return cep;
    }

    public void setCep(String cep) {
        this.cep = cep;
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public String getDatan() {
        return datan;
    }

    public void setDatan(String datan) {
        this.datan = datan;
    }

    public String getFone() {
        return fone;
    }

    public void setFone(String fone) {
        this.fone = fone;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public String getObs() {
        return obs;
    }

    public void setObs(String obs) {
        this.obs = obs;
    }

    public int getRg() {
        return rg;
    }

    public void setRg(int rg) {
        this.rg = rg;
    }

    public String getRua() {
        return rua;
    }

    public void setRua(String rua) {
        this.rua = rua;
    }

    public String getUf() {
        return uf;
    }

    public void setUf(String uf) {
        this.uf = uf;
    }

e tem esse codigo pos-inicialização que eu uso na tabela:

jtpesq.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lsmCli = jtpesq.getSelectionModel();
lsmCli.addListSelectionListener(new ListSelectionListener() { 
    public void valueChanged(ListSelectionEvent e) { 
        if (! e.getValueIsAdjusting()){ 
            linhaSelecionada(jtpesq); 
        } 
    }
});

9 Respostas

erico_kl

Coloque as tags “code” para postar o seu código e tente dar uma indentada nele

seu código aqui
erico_kl

Dê uma olhada neste post aqui também, que vai ajudar você futuramente

J

vlws…pela dica, é que realmente sou novo aki…

ssh

mano, muito simples. basta passar com parâmetro no construtor.

por exemplo:

public Pesq_cli(String nomeUsuario) {  
        initComponents();  
        setLocationRelativeTo(null);  
        label1.setText("Seja bem-vindo" +nomeUsuario); 
          
    } 

// para abri esse jframe.
Pesq_cli pcli = new Pesq_cli("meu_usuario");
pcli.setVisible(true);
ruben_m

há varias maneiras de fazer isso

a que eu geralmente uso são a passagem por parâmetro do construtor e a outra é a declarar a tabela ou os dados que desejas passar como static

espero ter ajudado

ViniGodoy

O ideal é tornar sua janela de pesquisa um JDialog modal. Aí você pode comunicar os dados dessa forma:

J

vlws, vinigodoy, eu entendi oq voê passou mas no meu caso, eu não estou conseguindo passar no meu codigo, ja que eu não estou conseguindo pegar as linhas selecionadas do jtable para o outro frame, terai como dar uma clareada nisso pra mim???

um agradecimento para a galera que esta tentando me ajudar, mas não esta dando certo…ou eu estou fazendo errado, ja que eu sou novo nisso…

ruben_m

podes mostrar o teu metodo <> ? no teu codigo so vi a implementação do metodo mas não o metodo como tal

J

kra c vc conseguir me ajudar seera um alivio muito grande pra mim…

public void linhaSelecionada(JTable tabela) {
        
        cad_cliente cli1 = new cad_cliente();
        
        if (jtpesq.getSelectedRow() != -1) {
            
            
            cli1.tfcodigo.setText(String.valueOf(cliente.get(tabela.getSelectedRow()).getCodigo()));
            cli1.tfnome.setText(cliente.get(tabela.getSelectedRow()).getNome());
            cli1.ftcpf.setText(cliente.get(tabela.getSelectedRow()).getCpf());
            cli1.tfrg.setText(String.valueOf(cliente.get(tabela.getSelectedRow()).getRg()));
            cli1.ftfone.setText(cliente.get(tabela.getSelectedRow()).getFone());
            cli1.ftcel.setText(cliente.get(tabela.getSelectedRow()).getCel());
            cli1.ftdat_nasc.setText(cliente.get(tabela.getSelectedRow()).getDatan());
            cli1.tfrua.setText(cliente.get(tabela.getSelectedRow()).getRua());
            cli1.tfnum.setText(String.valueOf(cliente.get(tabela.getSelectedRow()).getNumero()));
            cli1.tfbairro.setText(cliente.get(tabela.getSelectedRow()).getBairro());
            cli1.tfcid.setText(cliente.get(tabela.getSelectedRow()).getCidade());
            cli1.ftcep.setText(cliente.get(tabela.getSelectedRow()).getCep());
            cli1.cbuf.setSelectedItem(cliente.get(tabela.getSelectedRow()).getUf().toString());
            cli1.taobs.setText(cliente.get(tabela.getSelectedRow()).getObs());
            
        } else {
            
            cli1.tfcodigo.setText("");
            cli1.tfnome.setText("");
            cli1.ftcpf.setText("");
            cli1.tfrg.setText("");
            cli1.ftfone.setText("");
            cli1.ftcel.setText("");
            cli1.ftdat_nasc.setText("");
            cli1.tfrua.setText("");
            cli1.tfnum.setText("");
            cli1.tfbairro.setText("");
            cli1.tfcid.setText("");
            cli1.ftcep.setText("");
            cli1.cbuf.setSelectedItem("");
            cli1.taobs.setText("");
        }
    }
Criado 27 de outubro de 2012
Ultima resposta 28 de out. de 2012
Respostas 9
Participantes 5