Exibir Lista de dados em JList

1 resposta
A

Olá, desculpe-me mas já olhei vários lugares e não encontrei a solução para meu problema.

Seguinte, ao criar a classe GUI, utilizei o formulário JPanel (que tem opção de projeto e código). Desenhei através do projeto a janelinha que eu quero (é muito simples, apenas uma JList que deve mostrar meus clientes cadastrados no BD).

Tenho a classe ClienteServico (que é o DAO do cliente) e me retorna um List com meus clientes, segue o código:

public List<Cliente> consultaTodos() {  
  
        base.abreConexao();  
        gerente = base.getGerenciador();  
  
        Query q = gerente.createNamedQuery("TodosClientes");  
  
        List todos = q.getResultList();  
  
        return todos;  
    }

Tenho também a classe GUI que foi criada. Essa classe não permite eu alterar os dados, pelo fato de eu ter criado através do Formulário JPanel. Assim, criei o seguinte código:

public class JanelaPrincipal extends javax.swing.JFrame implements ActionListener {  
  
    /** Creates new form JanelaPrincipal */  
    public JanelaPrincipal() {  
        initComponents();  
  
//AQUI ABAIXO FOI O QUE CRIEI, DENTRO DO METODO PRINCIPAL QUE É JanelaPrincipal()  
  
        JList l = new JList();  
        ClienteServico cs = new ClienteServico();  
        List <Cliente> lista = cs.consultaTodos();  
          
        l.setListData(lista.toArray());

Porém isso que eu fiz, não está retornando a lista do Cliente DAO (já fiz no console uma impressão dos dados e funciona beleza).

Ele continua apresentando o seguinte trecho que foi feito e não é possível alterar:

ListaPrincipal.setModel(new javax.swing.AbstractListModel() {  
            String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };  
            public int getSize() { return strings.length; }  
            public Object getElementAt(int i) { return strings[i]; }

Não sei o que fazer. Se alguem puder me ajudar, ficarei muito grato.

Valeu.

1 Resposta

R

Após a chamada do método initComponents(), chame mais uma vez o método ListaPrincipal.setModel(), mas desta vez passando como parâmetro um ListModel criado por você. Há explicações sobre como fazer isso abaixo:
http://docs.oracle.com/javase/tutorial/uiswing/components/list.html

Criado 27 de junho de 2012
Ultima resposta 29 de jun. de 2012
Respostas 1
Participantes 2