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]
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!
:lol: :lol:
Funcionou muito obrigado pela ajuda!!!