Popular JList

5 respostas
S

Pessoal,

Estou populando uma JList com uma consulta do banco.
Para isso implementei um modelo para o componente que segue abaixo:

public class ProgramaListModel extends AbstractListModel {
    
    /** Creates a new instance of ProgramaListModel */
    private List<Programa> listPrograma;
    
    public ProgramaListModel(List listPrograma) {
        this.listPrograma = listPrograma;
        
    }
    
    public int getSize() {
        return listPrograma.size();
    }
    
    public Object getElementAt(int index) {                
        for(Programa programa: listPrograma ){
            return programa;
            
        }
        return null;
        
    }
    
    public Programa getValoresPaciente(int rowIndex){
        return (Programa) listPrograma.get(rowIndex);
    }
    
}

O problema é que se retorna na consulta por exemplo: Teste1, Teste2, Teste3
Ele popula a list desta forma:
Teste1
Teste1
Teste1

Ele coloca o numero de registros corretamente mas imprimi o valor do primeiro...

A Chamada para o modelo fiz desta forma:
private void setListPrograma(){
        Factory fct = new Factory();
        
        this.jlstPrograma.setModel(new ProgramaListModel(fct.createProgramaDAODB().list()));
        
    }
e a classe Programa eh esta:
public class Programa {
    
    /** Creates a new instance of Programa */
    private Integer codigo;
    private String nome;
    
    public Programa() {
    }
    
    public Integer getCodigo() {
        return codigo;
    }
    
    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }
    
    public String getNome() {
        return nome;
    }
    
    public void setNome(String nome) {
        this.nome = nome;
    }
    
    public String toString() {
        return this.getNome();
    }
                
}

Onde será que estou errando?

Valeu pessoal,

5 Respostas

analyser

Você esta quebrando o laço com esse return, por isso ele não percorre o iterator.

Abraços

S

cara… acho que nao… pq ele preenche com o numero correto de registros…

entao acho q ele esta percorrendo o iterator… concorda comigo?

S

Alguém tem alguma idéia… hehe

analyser

SergioJunior:
cara… acho que nao… pq ele preenche com o numero correto de registros…

entao acho q ele esta percorrendo o iterator… concorda comigo?

Inserir é uma coisa, consultar é outra, quando vc insere vc nao quebra com um return.

S

entendo… mas ele insere 3 vezes entende…

ele insere a quantidade de registros que vem da consulta, soh q apenas o primeiro registro…

nao consigo entender, e nem imagino uma maneira de resolver

Criado 6 de novembro de 2007
Ultima resposta 6 de nov. de 2007
Respostas 5
Participantes 2