Duvida JcomboBOX

2 respostas
couta

e ai galera, to com um problema no seguinte…

tenho um comboBox que ele é prenchido com os dados do banco de dados…esse meu combo ele mostra as cidades cadastradas de outra rotina!!

meu problema esta na tela de alteraçao de cadastro… quando eu clico no cliente que eu quero alterar abre uma nova tela com todos os dados dele prenchidos por exemplo: NOME,CPF,TELEFONE etc… vindo la do banco de dados menos o campo do ComboBox… esse nao vem com o valor correto digamos q eu cliquei no cliente Rafael e a cidade dele cadastrada tava como FLORIANOPOLIS, eu queria q esse meu comboBox ja tivesse selecionado automaticamente como Florianopolis…mas ele sempre ta vindo com o primeiro Item do comboBox Selecionado. E eu queria que ja viesse Selecionado o Item que foi cadastrado que no caso é “FLorianopolis” ai se eu quero alterar só o campo telefone tenho que mudar a cidade para Florianopolis também pq ele nao deixa já automaticamente selecionado o valor correto… e o que eu quero é isso.deixar o valor correto ja Selecionado…
como posso fazer isso??

2 Respostas

Lucas_Bellin

eae cara…

você teria que primeiro alimentar o combo com uma lista de dados (todas as cidades que você tem cadastradas) e o ideal é que essas cidades fossem únicas.
então quando você buscar o cliente, você terá que marcar no combo, o indice ou item correspondente. Se as cidades que você lista do banco retornarem como String, e no cliente, o campo cidade também seja uma String, acho que você pode fazer simplesmente com:

comboBox.setSelectedItem( cliente.getCidade() );

att.

sf.marcius

primeiramente, você poderia criar um “ComboBoxModel” (implementando esta interface) personalizado, no qual vc irá inserir os objetos do tipo “Cidade” selecionaveis do jcombobox.
depois, sete esse modelo no seu jcombobox, digamos, que seu modelo seja CidadeComboBoxModel:

List<Cidade> cidades = buscaDoBanco();
cidadeCombobox.setModel(new CidadeComboBoxModel(cidades));

depois basta vc informar ao combobox, qual ele deve selecionar…

private void carregaForm() {
    // carregar dados do cliente
    Cliente cliente = carregaCliente(id);
    cidadeCombobox.getModel().setSelectedItem(cliente.getCidade());
    // seta os valores dos demais campos do form...
}

lembrando que a classe “Cidade” deverá implementar Serializable e ter os métodos hashCode() e equals() devidamente implementados.

feitow!
[]

Criado 26 de janeiro de 2010
Ultima resposta 26 de jan. de 2010
Respostas 2
Participantes 3