Ajuda com javaFX combo box

meu 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"));
       departamentos.add(departamento);
    }
    ps.close();
    rs.close();
    }catch (SQLException ex) {
        Logger.getLogger(DepartamentoDAO.class.getName()).log(Level.SEVERE, null, ex);
    }
    return departamentos;
}

meu controller:

@FXML
private JFXComboBox<Departamento> cbDepart;
private ObservableList<Departamento> obsDepartamentos;
public void initialize(URL url, ResourceBundle rb) {
    DepartamentoDAO dao = new DepartamentoDAO();
    for(Departamento d: dao.read()){
       obsDepartamentos = FXCollections.observableArrayList(d);
       cbDepart.setItems(obsDepartamentos);
    }
}

meu model que criei o to string:

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

bom ao debugar eu vi que realmente após a consulta a lista bate com a qtd no banco de dados porém no combo box só aparece apenas um registro da tabela sendo que minha lista pega 4 registros

e já percebi que o problema está no meu controller, pq o obsDepartamentos está guardando apenas o último objeto da minha lista mas não sei como resolver.

Resolvido!
eu não estava preenchendo a lista
eu adicionava apenas o último valor
eu preenchi a lista toda e depois adicionei

obsDepartamentos = FXCollections.observableArrayList(dao.read());
   cbDepart.setItems(obsDepartamentos);
1 curtida