JTable Ajuda!

Seguinte galera sou novo aki e estou mexendo em JTable.

Tenho uma tabela onde jogo os dados da consulta no banco.

Já consigo pegar o valor da linha da tabela.

O problema é passar esse valor para outro Frame. Ou seja esse valor vai servir para fazer uma consulta no banco e setar todos os valores no JTField!

ai vai meu código

private void consultarCliente() {
ResultSet rs = null;
String pegaNome = jTConsultaNome.getText();
try {
Connection connection;
connection = conexaoBD.getConnection();
Statement stmt = connection.createStatement();
rs = stmt.executeQuery("SELECT cod_cliente, nome_cliente " +
“FROM tb_cad_cliente WHERE nome_cliente like '%” + pegaNome + “%’” +
“ORDER BY nome_cliente”);
ResultSetMetaData rsmd = rs.getMetaData();//executa as colunas id, nome …

        if (rs.next() == false) {
            //msgnaolocalizado();
            JOptionPane.showMessageDialog(this, "Erro!");
        } else {
            DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
            modelo.setNumRows(0);
            modelo.insertRow(0, new Object[]{rs.getString("cod_cliente"), rs.getString("nome_cliente")});
            //rs = s.executeQuery("SELECT * FROM cliente where codigo='"+rs.getString("codigocliente")+"' ");   
            // if (!rs.next()==false){   
            //modelo.insertRow(0, );      
            //}   
            while (rs.next()) {
                modelo = (DefaultTableModel) jTable1.getModel();
                modelo.insertRow(0, new Object[]{rs.getString("cod_cliente"), rs.getString("nome_cliente")});
            }
        }
    } catch (Exception e) {
        System.err.println(e);
    } finally {
        try {
            //fechar coneccao com o banco de dados   
            rs.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
    
public Object obterValorLinha() {
    
    ClienteBean cliente = new ClienteBean();
    //AlterarCliente altCli = new AlterarCliente();
    int linha = jTable1.getSelectedRow();
    int coluna = jTable1.getSelectedColumn();
    Object cod_cliente = null;
    cod_cliente = jTable1.getValueAt(linha,coluna).toString();
    //String valor = jTable1.getValueAt(linha,coluna).toString();
    //int cod_cliente = Integer.parseInt(valor);
    //altCli.recebeValor(cod_cliente);
    System.out.println(cod_cliente);
    JOptionPane.showMessageDialog(this, cod_cliente);
    cliente.setCod_cliente(cod_cliente);
    return cod_cliente;
    
}

1° Coloque seu código entre as tags e
2° Não tenho ideia do que voce quis dizer com o seu problema esta em passar o valor da tabela para outro JFrame e com esse pedaço de código.

Essa é minha classe ClienteBean

public class ClienteBean {
    
    public Object cod_cliente;
    private String nome_cliente;
        
    public Object getCod_cliente() {
        return cod_cliente;
    }

    public String getNome_cliente() {
        return nome_cliente;
    }

    public void setCod_cliente(Object cod_cliente) {
        this.cod_cliente = cod_cliente;
            
    }
    public void setNome_cliente(String nome_cliente) {
        this.nome_cliente = nome_cliente;
    }
    
}

Nesse método, que está na classe ConsultaCliente, eu envio para a classe ClienteBean o valor da linha que eu peguei da tabela. Esse método está em outra classe!

public Object obterValorLinha() {
        
        ClienteBean cliente = new ClienteBean();
        int linha = jTable1.getSelectedRow();
        int coluna = jTable1.getSelectedColumn();
        Object cod_cliente = null;
        cod_cliente = jTable1.getValueAt(linha,coluna).toString();
        cliente.setCod_cliente(cod_cliente);
        return cod_cliente;
        
    }

Nesse método, que está na classe AlterarCleinte, recupero o valor da linha do JTable passa da para ClienteBean para exibir num JTfield.

public void recebeValor()  {

            ClienteBean cliente = new ClienteBean();
            Object cod_cliente_rec = cliente.getCod_cliente();
            jTCod_Cliente.setText(String.valueOf(cod_cliente_rec));

}

Não dá erro, o problema é que exibe o valor null no JTfield!!!

Foi mal pelos erros aew, to começando!!!

Se alguém puder ajudar agradeço!!!

Você não está chamando o método, você só está criando um novo Cliente e nada mais…

Não seria isso que você quer fazer?

             ...
                ClienteBean cliente = new ClienteBean();  
                Object cod_cliente_rec = seiLáQueClasse.obterValorLinha();  
                cliente.setCod_cliente(cod_cliente_rec);
             ...
   

Não é isso!

O problema é no método “public Object getCod_cliente” da classe ClienteBean, ele sempre retorna um valor null!

Alguém pode me dar uma dica aew.

vlw!!!

Que tal começar aprendendo a trabalhar direito com o JTable?

Para começar, entenda como o TableModel funciona e pare imediatamente de usar o DefaultTableModel.

Abaixo, dois artigos ótimos que vão te explicar como a Table funciona:
http://www.informit.com/articles/article.aspx?p=332278
http://www.informit.com/articles/article.aspx?p=333472

Faça sua classe de negócios ler os dados do banco, criar uma List de objetos e então faça um TableModel personalizado que diga para a table como essa lista ser exibida. Dessa forma, você não duplicando dados na forma de String dentro do seu model, deixa o código mais eficiente, mais organizado e se livra de erros chatos como o que você está tendo.

O JTable é um dos componentes mais poderosos e bem bolados do Swing. Mas é também o que tem um dos usos mais complexos (pior que ele só o JTree), e é importante saber exatamente como ele funciona.

Ola!
Talvez você não esteja passando seu bean como argumento. tipo:

          
private ClienteBean cliente;

recebeValor(ClienteBean bean){
       // Dessa forma você vai ter uma copia do cliente ja com os dados.
      this.cliente = bean;

      /*Sempre que você cria um:
        ClienteBean cliente = new ClienteBean(); 
        ele vem com dados null, porisso você deve passar um ClienteBean 
        como argumento do metodo ou declarar um no inicio do seu programa*/

      Object cod_cliente_rec = cliente.getCod_cliente();   
      jTCod_Cliente.setText(String.valueOf(cod_cliente_rec));   
}

Acho que isso deve resolver o seu problema!

Valeu cara vou tentar fazer isso aki!!!

Mas como faço para inicializar esse método no construtor ?

recebeValor(ClienteBean bean)