Popular um combo box com uma lista do banco de dados:

Bom eu tenho uma classe DAO DepartamentosDAO eu queria popular um combo box com uma consulta que faço nesse DAO

meu DAO:

public class DepartamentoDAO {

    private Connection con;

    public DepartamentoDAO() {
        this.con = new ConnectionFactory().getConnection();
    }

    public boolean popularComboBox() throws SQLException{
        List<String> setores = new ArrayList<String>();
        String query = "SELECT * FROM departamentos";
        PreparedStatement ps = con.prepareStatement(query);
        ResultSet rs = ps.executeQuery();
        while(rs.next()){
           setores.add(rs.getString("nome_setor"));
           }

    ps.close();
    return true;
    }
}

meu controller:

@FXML
private JFXComboBox<Departamento> cbDepart;
private List<Departamento> departamentos = new ArrayList();

como eu conseguiria popular o meu combo box com essa lista DAO que está em outro metodo?

minha classe DAO

public List<Departamento> read(){
    List<Departamento> departamentos = new ArrayList();
    String query = "SELECT * FROM departamentos";
    try {
    PreparedStatement ps = con.prepareStatement(query);
    ResultSet rs = ps.executeQuery();
    while(rs.next()){
       Departamento departamento = new Departamento();
       departamento.setId_departamento(rs.getInt("id_departamentos"));
       departamento.setNome_setor(rs.getString("nome_setor"));
       departamento.setIdchefe(rs.getInt("idchefe"));
       departamentos.add(departamento);
    }
    ps.close();
    rs.close();
    }catch (SQLException ex) {
        Logger.getLogger(DepartamentoDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
    return departamentos;
}

na tela de cadastro

    private JFXComboBox<Departamento> cbDepart;
    DepartamentoDAO dao = new DepartamentoDAO();
    for(Departamento d: dao.read()){
       cbDepart.setItems(d);
    }

nessa parte fica pedindo uma observable list como eu arrumaria isso?

public void initialize(URL url, ResourceBundle rb) {
    DepartamentoDAO dao = new DepartamentoDAO();
    for(Departamento d: dao.read()){
       obsDepartamentos = FXCollections.observableArrayList(d);
       cbDepart.setItems(obsDepartamentos);
    }
    
}
public void test(){
    Departamento departamento = (Departamento) cbDepart.getSelectionModel().getSelectedItem();
    JOptionPane.showMessageDialog(null,"ID: "+departamento.getId_departamento()+"nome"+departamento.getNome_setor());
    JOptionPane.showMessageDialog(null,"ID: "+departamento.getId_departamento()+"nome"+departamento.getNome_setor());
    JOptionPane.showMessageDialog(null,"ID: "+departamento.getId_departamento()+"nome"+departamento.getNome_setor());
}

resolvido!