Java JComboBox

Galera, estou desenvolvendo um cadastro simples de livros. E gostaria de na hora do cadastro
exibir as pessoas que estão dentro do banco, porque eu só quero que tenha um cadastro de livro com alguma pessoa vinculada. Bom, está quase tudo pronto. Eu já criei a tabela livro com a chave estrangeira da tabela pessoa, também já criei a tabela. Mas apenas consigo cadastrar um livro digitando
o numero do codigo identificador da pessoa. Eu gostaria de exibir as pessoas que estao cadastradas em um ComboBox, entende ? vou colocar imagens.

aqui está tudo correto, porém tenho que colocar o id da pessoa.

estaTudoCerto

gostaria de exibir as pessoas cadastradas dentro desse JComboBox
tela2

Você quer fazer uma busca no banco e colocar o resultado na combo box né.

Cria um método no seu Model que retorna uma Lista.
Ex:

 public List<String> ListDep() throws SQLException {
    String sql = "SELECT * FROM PESSOAS";

    ArrayList<String> result = new ArrayList();

    PreparedStatement ps = conexao.prepareStatement(sql);

    ResultSet rs = ps.executeQuery();

    while (rs.next()) {
        result.add(rs.getString("NOME_PESSOAS"));
    }
    return result;
}

Depois no combobox:

boxPessoas = new JComboBox((new
DefaultComboBoxModel(iv.ListDep().toArray())));

Pra pegar o valor selecionado:

boxPessoas.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent ae) {
        selected = String.valueOf(boxPessoas.getSelectedItem());

No caso aí pega o nome da pessoa. Pra vc cadastrar somente o ID, acredito q tenha maneiras mais corretas e fáceis de fazer, mas quando fiz, peguei a String selecionada e fiz uma consulta no banco para saber o ID; peguei o Id e cadastrei.

1 curtida