Duvida com o JList

Ola pessoal bom dia a [quote]todos, estou com um probleminha aki com meu JList olhem só…

import javax.swing.JList;
public class Nome
{
     String nomes [] = {"PrimeiroNome","SegundoNome"}
     JList lista = new JList(nomes);
     
     //Se eu quizer fazer com que meu lista receba mais nomes,como faço pessoal? tenho que instanciar um novo vetor? o JList só pode receber vetor?

}

http://java.sun.com/docs/books/tutorial/uiswing/components/list.html

Os componentes swing do java, incluindo JList, trabalham muito com modelos onde se encontra a “fonte” das informações para exibição.

O modelo padrão que vem com JList não permite adicionar novos elementos.

Existe um outro modelo porém, o DefaultListModel, que permite essa remoção ou adição de novos elementos. Para isso, voce teria de criar explicitamente e adicioná-la a sua lista.

Um exemplo de codigo seria:

[code]import java.awt.BorderLayout;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;

public class ListaTeste {

public static void main(String[] args) {
	JFrame f = new JFrame("Teste lista");
	f.setSize(400, 300);
	f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	f.setLocationRelativeTo(null);
	
	DefaultListModel modelo = new DefaultListModel();
	JList lista = new JList(modelo);
	modelo.addElement("Item 1");
	modelo.addElement("Item 2");
	modelo.addElement("Item 3");
	modelo.addElement("Item 4");
	modelo.addElement("Item 5");
	
	f.getContentPane().add(lista, BorderLayout.CENTER);
	f.setVisible(true);
}

}[/code]

Espero ter ajudado.

Melhor ainda: crie seu próprio ListModel. Fazendo isso você terá controle total e absoluto sobre o modelo (que fornece os dados) da sua JList.

A ideia de Model’s se aplica a vários componentes do swing e os motivos para não se usar DefaultListModel são os mesmo para não se usar DefaultTableModel.