Preencher jcombobox

2 respostas
G
Pessoal, boa tarde!

Estou precisando buscar alguns dados do banco através do uma jcombobox. Usei esse método:

>    > public void preencherComboRecup(){

>     >     conex.conexao();

>     >     conex.executaSQL(“SELECT nome_paciente, status_paciente FROM tb_paciente ORDER BY nome_paciente”);

>     >     try{

>     >         conex.rs.first();

>     >         jComboBoxPaciente.removeAllItems();

>     >         jComboBoxStatus.removeAllItems();

>     >         do{

>     >             jComboBoxPaciente.addItem(conex.rs.getString(“nome_paciente”));

>     >             jComboBoxStauts.addItem(conex.rs.getString(“status_paciente”));

>     >         }while(conex.rs.next());

>     >     }catch(SQLException ex){

>     >         JOptionPane.showMessageDialog(rootPane, “Erro ao buscar dados do paciente!” + ex);

>     >     }

>     >     conex.desconecta();

>     > }

Dessa forma preencho os campo jcombobox. Mas meu objetivo é através da comboboxpaciente, selecionar o nome do paciente, e na textfiel mostrar o status daquele paciente selecionado.
Como fazer isso?

2 Respostas

Rodrigo_Void

Olá,
Precisa usar orientação a objetos. Crie um objeto Paciente, então vc o busca do banco com seus dados e joga ele no combobox (n a string) precisa sobrescrever o toString dessa classe Paciente para retornar o nome dele para aparecer quando jogar no combo. Ai quando seleciona no combo vc pega o objeto Paciente selecionado com todos seus dados, pega o status dele e joga no outro combo.

bruno_souza_picinini

Bom dia,
aconselho usar MVC e mover seus métodos que conectam com o banco para um Pacote DAO.
Procure por estes conceitos eles auxiliam muito na organização de seu projeto.

Complementando a resposta do Rodrigo e tentando ser o mais simples possível seria o seguinte:

Você busca seus registros no banco e cria um objetos deles,(modelos) e os adiciona em um arrayList.
Este arrayList você passa por parâmetro para adicionar seus objetos na combo (um método que recebe uma combo e um array)

Para que a exibição do Objeto na combo fique com o nome do paciente, lá no Modelo de paciente
você sobre-escreve o método toString()

@Override
    public String toString() {
        return nomePaciente ;
    }

obs.: Se você não sobre-escrever ele exibira o endereço da instancia de cada objeto em sua combo

Criado 5 de março de 2017
Ultima resposta 6 de mar. de 2017
Respostas 2
Participantes 3