Como pegar id_setor depois que selecionar um setor pelo JCombobox

Ola a todos do Java.

Tenho um código em MVC e na Visão cadastro de Funcionário tenho uma combo box onde contem todos os setores e queria quando eu selecionasse esse setor pegaria sua id que passaria pelo método ctlIncluirFuncionario() na classe controle e depois passaria pelo método DaoIncluirFuncionario na classe DaoFuncionario e faz a sua inclusão. Veja o Meu codigo.

public class daoSetor {

private Conectar cnx;
private String sql;
private PreparedStatement pst;
private Statement st;
private ResultSet rs;

public List DaoConsultarSetor() {

    List<Setor> lstS = new ArrayList<>();

    try {
        sql = "SELECT * FROM tbsetor ORDER BY id_setor";
        pst = cnx.getConnection().prepareStatement(sql);
        rs = pst.executeQuery(sql);
        while (rs.next()) {
            Setor s = new Setor();
            s.setId_setor(rs.getInt("id_setor"));
            s.setDescricao(rs.getString("descricao"));
            lstS.add(s);
        }
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, ex.getMessage());
    }
    return lstS;
} 

}

public class daoFuncionario {

private Conectar cnx;
private String sql;
private PreparedStatement pst;
private Statement st;
private ResultSet rs;

public daoFuncionario() {
    cnx = new Conectar();
}

public void DaoIncluirFunc(Funcionario func) {

    try {
        sql = "INSERT INTO tbfuncionario (id_setor,nome) VALUES(?,?)";
        pst = cnx.getConnection().prepareStatement(sql);
        pst.setInt(1, func.getId_setor());
        pst.setString(2, func.getNome());
        pst.executeUpdate();
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, ex);
    }
}  

}

public class controleFunc {

public void ctlIncluirFunc(int id_setor, String nome) {
    
    Funcionario F = new Funcionario();
    daoFuncionario daoF = new daoFuncionario();
    
    if (nome.isEmpty() || nome.trim().equals("")) {
        JOptionPane.showMessageDialog(null, "POR FAVOR PREENCHA O CAMPO DESCRIÇÃO!!!!!");
    } else {
        F.setId_setor(id_setor);// AQUI PEGA A **ID** DEPOIS QUE UM SETOR  LISTADO NA JCOMBOBOX FOR SELECIONADO NA JCOMBOBOX ELE PEGA ESSA **ID** E JOGA NESTE SetId_setor(id_setor).
        F.setNome(nome);
        daoF.DaoIncluirFunc(F);
        JOptionPane.showMessageDialog(null, "FUNCIONÁRIO CADASTRADO COM SUCESSO!!");
        
    }
}

Dê uma olhada em Como pegar Id no JcomboBox
Osb.: ao invés de pegar o ID, pegue o objeto, faça um casting se for preciso, ai você pode pegar qualquer atributo acessível do objeto.
Lembre de sobrescrever o método toString para trabalhar sua classe em um combobox, ao invés de usar unicamente String.
Sai mais barato neste caso.

Como faço para pegar este objeto?

Você recupera o objeto inteiro da combo para o modelo!

Setor setor = new Setor(); //instanciando o objeto
setor = (Setor) comboBoxSetor.getSelectedItem(); //recuperando o setor da combo
1 curtida

Vc quer o ID de um setor que esta em uma combobox??
mais na combo esta escrito o nome do setor, ou um numero indicando o setor??
se tiver somente o nome, vc vai ter q fazer a busca na tabela e retornar o ID, dpois enviar para o metodo que faz a gravação… pelo menos assim que eu faço.

O combobox aceita objetos, é por isso que você pode pegar “qualquer coisa” dele, sem necessidade de fazer iteração.
Se, não me engano, existe até a possibilidade de pagar um objeto sem fazer casting.

Editado para fins de confirmação:

Método usado com uma classe qualquer, que sobrescreve o toString.

private void povoarCombo(Cidade... cidades) {
        JComboBox<Cidade> comboCidade = new JComboBox<>(new DefaultComboBoxModel<>(cidades));
        //adicionando elementos
        comboCidade.setModel(new javax.swing.DefaultComboBoxModel<>(cidades));
        //monitorando um evento, necessidade questionável pois depende do tipo de implementação
        comboCidade.addItemListener((ItemEvent ie) -> {
            if (ie.getStateChange() == ItemEvent.SELECTED) {
                Cidade c = comboCidade.getItemAt(comboCidade.getSelectedIndex());
                System.out.println(c.getCodigo());//acesso ao código
            }
        });  
    }

Queria quando eu selecionar um setor que esta no Jcomboxbox ele pegaria a Id_setor. Entendeu Jederson_andre

Ola amigão mais e exatamente o que eu quero fazer Jederson_Andre!!!