Apanhando com ComboBox

6 respostas
B

Galera, estou tentando carregar um jcombobox com os dados de uma lista, mas está dando um pau muito louco (está carregando o nome da CLASSE com um código, isso mesmo: br.com.nomedaclasse.@cd43ce).

Estou extendendo a classe DefaultComboBoxModel. Acho que o erro está no método getSelectedItem, QUE EU NÃO SOBRESCREVI.

1. public class AgenteComboBoxModel extends DefaultComboBoxModel 2. { 3. private List<StatusAgentesFilasAtualVO> dados = new LinkedList<StatusAgentesFilasAtualVO>(); 4. 5. public AgenteComboBoxModel (List<StatusAgentesFilasAtualVO> dados) 6. { 7. this.dados = dados; 8. } 9. 10. public int getSize() 11. { 12. return dados.size(); 13. } 14. 15. public Object getElementAt(int index) 16. { 17. StatusAgentesFilasAtualVO dado = dados.get(index); 18. return dado; 19. } 20. 21. }

Neste método eu serializo o objeto e retorno uma lista.

1. public List<StatusAgentesFilasAtualVO> getAgente() 2. { 3. List<StatusAgentesFilasAtualVO> listaAgente = new LinkedList<StatusAgentesFilasAtualVO>(); 4. for (int i = 0; i < tamanhoLista; i++) 5. { 6. StatusAgentesFilasAtualVO vo = new StatusAgentesFilasAtualVO(); 7. registro = arrayResultado.getStatusAgentesFila().get(i); 8. // Serializa Objeto 9. vo.setNroAgente(registro.getNroAgente()); 10. // Adiciona objeto a lista 11. listaAgente.add(vo); 12. } 13. return listaAgente; 14. }

Estou chamando assim:

1. AgenteComboBoxModel comboAgente = new AgenteComboBoxModel(ws.getAgente()); 2. nbsp; jComboBoxAgente.setModel(comboAgente);

6 Respostas

Pedrosa

Use o toString() e veja se resolve;

B

O valor retornado, nroAgente já é uma String. :cry:

joseinfo

Na sua classe StatusAgentesFilasAtualVO sobreescreva o método toString para retornar o valor q vc quer que apareça no comboBox.

B

Não entendi bem, poderia me dar uma exemplo?

marcos.junqueira
public class StatusAgentesFilasAtualVO {
    //... seu codigo

    public String toString() {
        String retValue = "" + /*seus atributos aqui*/;
        return retValue;
    }
}

Quando vc fizer:

StatusAgentesFilasAtualVO obj = new StatusAgentesFilasAtualVO();
System.out.println(obj);
deve inprimir
/*seus atributos aqui*/

Se você não sobrescrever irá imprimir algo do tipo

seu.pacote.StatusAgentesFilasAtualVO@cd43ce

Isso é sobrescrever, ou seja, mudar o comportamento de um método existente na classe Pai (Todos os objetos herdam da classe Object e toString() é um método de Object)

B

Valeu galera! Agora caiu a ficha! :oops:
Testei aqui e funfou legal!!!

Criado 19 de julho de 2007
Ultima resposta 19 de jul. de 2007
Respostas 6
Participantes 4