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!