Jtable funciona parcialmente

minha jtable funciona so que em vez de retorna todos os dados da tabela, apenas aparece a ultima linha da tabela do bd.

tenho esse método de consulta no DAO:

[code] public List Clientes(DomainObject domainObject) throws SQLException {
List list_cliente = new ArrayList();

try{
Cliente cliente = (Cliente)domainObject;

Connection conn = ConectionBD.getConnection();
String sql = null;
sql = "select * from cliente order by idcliente";
PreparedStatement pst = conn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();

while (rs.next()) {
Endereco endereco = new Endereco();
endereco.setRua(rs.getString(“rua”));
endereco.setNumero(rs.getInt(“numero”));
endereco.setCidade(rs.getString(“cidade”));
endereco.setBairro(rs.getString(“bairro”));
cliente.setEndereco(endereco);

cliente.setCPF(rs.getInt("cpf"));
cliente.setNome(rs.getString("nome"));
cliente.setTelefone(rs.getInt("telefone"));
cliente.setID(rs.getInt("idcliente"));
list_cliente.add(cliente);
}}catch(Exception e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.getMessage());
}
return list_cliente;
}[/code]

e aqui eh minha view :

[code]
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

    try {
        IFachada fachada = new Fachada();
        Cliente cliente = new Cliente();            DefaultTableModel modelo = new DefaultTableModel(new Object[]{"Código do Cliente", "Nome", "CPF","Cidade"}, 0);
        List<Cliente> list_cliente = fachada.Clientes(cliente);



        for (Cliente listcli : list_cliente) {

modelo.addRow(new Object[]{listcli.getID(),listcli.getNome(),listcli.getCPF(),listcli.getEndereco().getCidade()});
}

            jTable1.setModel(modelo);

        
    } catch (Exception e) {
        e.printStackTrace();
        JOptionPane.showMessageDialog(null, e.getMessage());[/code]

Não é o cara que fez um post longuíssimo sobre MVC em Swing e está usando o DefaultTableModel?

Comece aprendendo a trabalhar com o JTable de verdade, e se livre desse model porcaria. Ele vai te induzir cedo ou tarde a mover lógica de negócio para suas GUIs.

Anyway, o problema do seu código está no fato de que você só criou uma única instância da classe Cliente.
Então, você está fazendo sets sobre o mesmo cliente, e inserindo sempre o mesmo cliente na sua lista.

Para corrigir, dentro do while você deveria fazer um “new cliente”, ou chamar algum método que faça a carga do cliente baseado naquele id (e nesse caso, esse método faria um new para você).

eu ja fiz varios post… agora não sei qual post vc esta falando… vou fazer o q vc me falou…
brigado

sua dica deu certo… funfou de boa!
vlw

Funcionou parcialmente, voce ainda esa usando DefaultTableModel.