Como preecher um combobox usando essa função

Tenho uma função para pegar a aporta seria e queria preencher um combobox com as portas seriais do micro segue abaixo o código que eu fiz mas está dando erro:

[code]public Porta() {
initComponents();
listaDePortas = CommPortIdentifier.getPortIdentifiers();
}
//retorna as portas disponíveis
public String[] ObterPortas(){
return portas;
}
//Copia portas para um Array
protected void ListarPortas(){
int i = 0;
portas = new String[10];
while (listaDePortas.hasMoreElements()) {
CommPortIdentifier ips =
(CommPortIdentifier)listaDePortas.nextElement();
portas[i] = ips.getName();
i++;
}
}
//pesquisa se a Porta existe
public boolean PortaExiste(String COMp){
String temp;
boolean e = false;
while (listaDePortas.hasMoreElements()) {
CommPortIdentifier ips =
(CommPortIdentifier)listaDePortas.nextElement();
temp = ips.getName();
if (temp.equals(COMp)== true) {
e = true;
};
}
return e;
}

   //imprime as portas disponíveis
   protected void ImprimePortas(){
          for (int i = 0 ; i < portas.length ; i ++ ) {
              if (portas[i] != null ) {
                 //System.out.print(portas[i] + "  ");
                 CBB_porta.addItem(getString("portas"));
              }
          }

   }[/code]

E qual o erro?

Depois que vc carregar o String[] portas, na hora em que for colocar o conteúdo no combo, faça assim:

seuCombo.setModel(new DefaultComboBoxModel(portas));

Prenchi no local errado?
Pq no meu micro tenho duas entrada de porta serial, só que quando executo o comando com o qual vc passou não está carregando nenhuma das duas portas, dá uma olhada ai:

  [code] //imprime as portas disponíveis
   protected void ImprimePortas(){
          for (int i = 0 ; i < portas.length ; i ++ ) {
              if (portas[i] != null ) {
                 //System.out.print(portas[i] + "  ");
                 //CBB_porta.addItem(getString("portas"));
                  CBB_porta.setModel(new DefaultComboBoxModel(portas));
              }
          }

   }[/code]

Não é isso?? Pq não está carregando nada!

[quote=Willdoidao]Prenchi no local errado?
Pq no meu micro tenho duas entrada de porta serial, só que quando executo o comando com o qual vc passou não está carregando nenhuma das duas portas, dá uma olhada ai:

  [code] //imprime as portas disponíveis
   protected void ImprimePortas(){
          for (int i = 0 ; i < portas.length ; i ++ ) {
              if (portas[i] != null ) {
                 //System.out.print(portas[i] + "  ");
                 //CBB_porta.addItem(getString("portas"));
                  CBB_porta.setModel(new DefaultComboBoxModel(portas));
              }
          }

   }[/code]

Não é isso?? Pq não está carregando nada![/quote]

Quase isso! Não precisa do loop! Assim:

  [code] //imprime as portas disponíveis
   protected void ImprimePortas(){
          if (portas != null)
              CBB_porta.setModel(new DefaultComboBoxModel(portas));
   }[/code]

Se vc realmente tem o conteúdo certo no array portas nesse momento, deve funcionar.

Devo ter errado em alguma parte do array, pq em outras telas que tenho funcionou (mas nw era para listar a porta serial). Vou dar uma estudada aqui pra ver o que posso estar errado se tiver alguma dica fico mais agradecido. E muito obrigado pela ajuda nossa foi uma mão na Roda muito obrigado Renata!!!

Alguem poderia me ajudar a descobrir aonde está o erro desse array? Pq nw consigo de jeito nenhum popular em combobox? Realmente não sei aonde está o erro e pq nw carrega o combobox.
Desde já agradeço!

Olá!

Por favor, post denovo seu código fonte pra vermos como está nesse momento.

Veja este exemplo.
Acredito que é isto que você quer.

public class		CapturarPortasSerial
	extends		JDialog
{
	private			JComboBox
	io_cb_portas;
	
	private			Enumeration<CommPortIdentifier>
	io_portas_disponiveis		=	CommPortIdentifier.getPortIdentifiers();
	
	private			CommPortIdentifier
	io_porta_selecionada;
	
	private			ArrayList<String>
	io_al_portas		=	new ArrayList<String>();
	
	private			OutputStream
	lo_saida;
	
	private			CapturarPortasSerial()
	{
		setSize(200,100);
		setLayout(null);
		setTitle("Portas disponíveis");
		setLocationRelativeTo(null);
		CapturarPortaDisponivel();
		Window();
	}
	
	private
	void			Window()
	{
		io_cb_portas		=	new JComboBox(io_al_portas.toArray());
		io_cb_portas.setBounds(10,10,80,25);
		getContentPane().add(io_cb_portas);
	}
	
	/**
	Guarda em um array, todas as portas seriais disponíveis no computador.
	*/
	private
	void			CapturarPortaDisponivel()
	{
		//
		// Enquanto há porta disponível...
		//
		while	(
				io_portas_disponiveis.hasMoreElements()
			)
		{
			//
			// Armazena a porta no array.
			//
			io_al_portas.add(io_portas_disponiveis.nextElement().getName());
		}
	}
	
	public static void main(String[] args)
	{
		JDialog.setDefaultLookAndFeelDecorated(true);
		new CapturarPortasSerial().setVisible(true);
	}
}

Caso não solucionou o seu problema, poste o erro que lhe ajudaremos.

Abraço!

Muito obrigado pela ajuda! Funcionou, ainda nw descobri o erro que tinha no outro mas com seu codigo consegui resolver o problema!!
Valeu mesmo pela ajuda pessoal!! Valeu!

:smiley: :smiley: :smiley: :lol: :lol:

Funcionou muito obrigado pela ajuda!!!