Itens de uma lista para um vetor [RESOLVIDO!]

Boa tarde senhores!

Segue meu código onde passo o resultado do resultset para uma lista, isso como o código abaixo mostra, está fazendo com sucesso, porém no código mais a frente necessito passar para o vetor “items” o que foi adcionado na lista pelo resultset. EIS O PROBLEMA, como passo os itens adcionados na lista para o vetor “itens”?? Lembrando que o vetor está em outra classe e vai alimentar o JComboBox.

[code]public static void main(String[] args) throws SQLException,
ClassNotFoundException {

	Connection conn;
	Statement stm;

	BaseDados basedados = new BaseDados();

	Class.forName(basedados.jdbc);
	conn = DriverManager.getConnection(basedados.drivemananger);

	stm = conn.createStatement();

	ResultSet rs = stm.executeQuery("select * from empregada;");

	ArrayList list = new ArrayList();
	
	while (rs.next()) {

		String nome = rs.getString("nome");
		list.add(nome);

	}[/code]

[code]

            String items [] = {};
	
	JComboBox list = new JComboBox(items);
	list.setBounds(10, 236, 203, 20);
	contentPane.add(list);[/code]

Primeiro, você pode popular o JComboBox a partir do ArrayList.
Segundo, é bem simples…
A lista possui um total de elementos. Um vetor precisa ser instanciado com um número determinado de elementos… Isso te diz alguma coisa?
Depois de instanciar o vetor, basta usar o for e “passar” cada elemento para o vetor…

Esse negocio de fazer as coisas no main ateh me arrepia. kkkkkk

main se usa para disparar a classe que comeca a executar, ficar colocando codigo nele eh soh para criar encrenca.

To imaginando que essa OutraClasse que tem o combo vai ser instanciada, deve ser um JFrame e vai ser mostrada.

Mas tudo bem, faça o seguinte:

OutraClasse oc = new OutraClasse();
oc.items = new String[list.size()]; //Assim vc define um array do tamanho da lista que tem rodando.
//Dai passa tudo da lista para o vetor
for(int i=0; i<list.size();i++){
     oc.items[i] = list.get(i);
}

Mas para isso funcionar, teu array items tem que ser um atributo public da classe onde ele estah.

Se for private voce vai ter de criar um método que o retorne para ser chamado daqui.

Bom se você sabe todo o resto e está querendo criar somente o array da lista usa o método toArray();

  String[] array = lista.toArray();

Ai cara … montei um exemplo simples aqui … assim já da pra vc se basear … abraços …

[code]import java.util.ArrayList;
import java.util.List;

public class teste {

public teste(){
	
}

public void preencheArray(List<String> L){
	String itens [] = new  String[L.size()];
	
	for(int i=0; i< L.size(); i++){
		itens[i] = L.get(i);
	}
	
	for(int i=0; i< itens.length; i++){
		
		System.out.println("Item "+" "+i+" "+ itens[i]);
	}
	
}


public static void main(String[] args) {
	// TODO Auto-generated method stub
	teste Teste = new teste();
	List<String> lista = new ArrayList<String>();
	lista.add("DIEGO");
	lista.add("ADRIANO");
	lista.add("PEREIRA");
	lista.add("CANDIDO");
	
	Teste.preencheArray(lista);

}

}[/code]

[quote=CharlesAlves]Bom se você sabe todo o resto e está querendo criar somente o array da lista usa o método toArray();

String[] array = lista.toArray(); [/quote]

Procurabd2 teste = new Procurabd2(); teste.Teste(); String[] Lista = teste.list.toArray();

Type mismatch: cannot convert from Object[] to String[]

???

Esta dizendo que vc não conseguiu converter o Objeto para String …

Veja se isso funciona:

String[] Lista =  teste.list.toArray().toString; 

Diego Adriano, com o seu codigo funcionou, ja sou agradecido a comunidade, porem nao estou conseguindo acessar a lista pelo JcomboBox

JComboBox list = new JComboBox(acao.preencheArray(acao.list));

O erro: The constructor JComboBox(void) is undefined

codigo para o JComboBox

[code]Procurabd2 acao = new Procurabd2();
acao.Teste();

JComboBox list = new JComboBox(acao.preencheArray(acao.list));
list.setBounds(10, 236, 203, 20);
contentPane.add(list);
[/code]

Aparentemente ele esta esperando um retorno … e como o método é “void” retorna null esta dando esse erro …
Tente assim …

[code]public String[] preencheArray(List L){
String itens [] = new String[L.size()];

	for(int i=0; i< L.size(); i++){
		itens[i] = L.get(i);
	}
	
	for(int i=0; i< itens.length; i++){
		
		System.out.println("Item "+" "+i+" "+ itens[i]);
	}

return itens;[/code]

Funcionou Diego, era a falta do retorno, ainda tenho que aprender muito :smiley:

Diego Adriano e todos os demais! Muitíssimo obrigado pelo apoio e paciência, grato a todos! O JcomboBox está funcionando com a lista alimentada pelo resultset! grato!

Relaxa cavibr todos nós temos muito que aprender rapaz …

Abraços … precisando posta ai que a galera aqui é demais !!

Até !!