jList

Olá pessoal, mais uma vez uma pergunta básica.

estou usando o jbuilder e preciso preencher o conteúdo de um jList em tempo de execução. Sei q uma forma de colocar valores p/ ele e passando um array p/ o constructor + neste caso eu não posso fazer isso.

quero via loop preencher ele com string’s.

como posso fazer isto?

desde ja muito obrigado

Acho que é isso que vc quer

import java.util.ArrayList;
public class Teste extends javax.swing.JFrame {

    public Teste() {
        initComponents();
    }

    private void initComponents() {

        jTextField1 = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jList1 = new javax.swing.JList();
        jMenuBar1 = new javax.swing.JMenuBar();

        getContentPane().setLayout(null);

        setTitle("Teste da Aplicau00e7u00e3o");
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        jTextField1.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTextField1KeyPressed(evt);
            }
        });

        getContentPane().add(jTextField1);
        jTextField1.setBounds(70, 40, 200, 20);

        jScrollPane1.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        jScrollPane1.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        jScrollPane1.setViewportView(jList1);

        getContentPane().add(jScrollPane1);
        jScrollPane1.setBounds(80, 93, 180, 110);

        setJMenuBar(jMenuBar1);

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-500)/2, (screenSize.height-400)/2, 500, 400);
    }

    private void jTextField1KeyPressed (java.awt.event.KeyEvent evt) {

         if (evt.getKeyCode() == evt.VK_ENTER) {
            arraylist.add(jTextField1.getText());
            jTextField1.setText(null);
            jList1.setModel(new javax.swing.AbstractListModel() {
            public int getSize() { return arraylist.size(); }
            public Object getElementAt(int i) { return arraylist.get(i); }
            });
        }        
    }
    private void exitForm(java.awt.event.WindowEvent evt) {
        System.exit(0);
    }

    public static void main(String args[]) {
        new Teste().show();
    }
    
    private ArrayList arraylist = new ArrayList();
    // Variables declaration - do not modify
    private javax.swing.JList jList1;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField jTextField1;
    
}

Legal, adaptei o código a minha necessidade de funcionou.

posso te pedir uma coisa?

me explica melhor o funcionamento desta parte do código!!

[code]
private void jTextField1KeyPressed (java.awt.event.KeyEvent evt) {

     if (evt.getKeyCode() == evt.VK_ENTER) { 
        arraylist.add(jTextField1.getText()); 
        jTextField1.setText(null); 
        jList1.setModel(new javax.swing.AbstractListModel() { 
        public int getSize() { return arraylist.size(); } 
        public Object getElementAt(int i) { return arraylist.get(i); } 
        }); 
    }        
} [/code]

Estou acostumado com Delphi e esperava algo como

jList1.itens.add("teste’)

e este exemplo q vc me mandou, apesar de funcionar, não compreendi perfeitamente o funcionamento.

muito obrigado desde já

ricardo