Método passando NULL

Boa Noite Galera…

Estou com a seguinte duvida.

Na minha class main estou pegando um valor de um campo JtxtFiel e passando para uma outra class… onde vou tratar o conteudo…
Mas quando eu passo pra minha outra class esta indo como NULL.

Minha Class Main

[code]
Cliente cliente = new Cliente();

    cliente.setNOME(JtxtNome.getText());   [/code]

Minha Class onde vou tratar as informações


 public List<Cliente> listar(boolean b) throws Exception {

        Cliente cli = new Cliente();
        
        BancoDeDados bd = new BancoDeDados();

        bd.conectar();

        String sql = "select * from cadcliente where nome = ?"
                + " order by nome";
        
        PreparedStatement ps = bd.getPreparedStatement(sql);
                
       ps.setString(1, cli.getNOME());  // Aqui passa como null
.
.
.

Se voce não tiver digitado nada no campo o valor dele se naum me engano é nulo,

se voce digitar alguma coisa, quando pegar o getText vira o valor informado

Estou passando um valor sim.

mas mesmo assim esta indo como NULL

E seu método está executando exatamente da maneira que você o implementou.

[code]
public List<Cliente> listar(boolean b) throws Exception {
//Aqui você criou o objeto cliente
Cliente cli = new Cliente();

    BancoDeDados bd = new BancoDeDados();

    bd.conectar();

    String sql = "select * from cadcliente where nome = ?"
            + " order by nome";
    
    PreparedStatement ps = bd.getPreparedStatement(sql);
   //Aqui você pega seu objeto e usa o método getNOME(), sem mesmo ter adicionado nada ao objeto cli criado a cima
   //Se você não passou valores para o objeto cli, como pretende recuperar algo dele?       
   ps.setString(1, cli.getNOME());


}[/code]

Na Class main onde executo estou passando ele para obj Cliente

[code]Cliente cliente = new Cliente();

cliente.setNOME(JtxtNome.getText()); // Aqui estou passando a valor [/code]

[quote=romarcio]E seu método está executando exatamente da maneira que você o implementou.

[code]
public List<Cliente> listar(boolean b) throws Exception {
//Aqui você criou o objeto cliente
Cliente cli = new Cliente();

    BancoDeDados bd = new BancoDeDados();

    bd.conectar();

    String sql = "select * from cadcliente where nome = ?"
            + " order by nome";
    
    PreparedStatement ps = bd.getPreparedStatement(sql);
   //Aqui você pega seu objeto e usa o método getNOME(), sem mesmo ter adicionado nada ao objeto cli criado a cima
   //Se você não passou valores para o objeto cli, como pretende recuperar algo dele?       
   ps.setString(1, cli.getNOME());


}[/code][/quote]

Não, você tem 2 objetos Cliente.

Um na Class main que você chamou de: cliente
E outro no método listar que você chamou de: cli

São objetos diferentes. No 1° foi setado o valor que veio da interface, mas no 2 você não seta nada.

Você tem que passar o cliente que você setou o valor para a outra classe, porque você está criando um cliente, setando o valor e depois em vez de usar o mesmo cliente, você esta dando new Cliente() e então criando um novo cliente.
Ou você passar o cliente por parâmetro ou cria na classe um metodo getCliente() para da outra classe você conseguir pegar esse cliente.