Tengo este código el cual hace el combo box:
private void setComboBox(){
productos_comboPROVEEDOR.setCellFactory(new Callback<ListView<Proveedores>, ListCell<Proveedores>>() {
@Override
public ListCell<Proveedores> call(ListView<Proveedores> p) {
final ListCell<Proveedores> cell = new ListCell<Proveedores>(){
@Override
protected void updateItem(Proveedores t, boolean b){
super.updateItem(t,b);
if(p!=null){
setText(p.getId());
}else{
setText(null);
}
}
};
return cell;
}
});
productos_comboPROVEEDOR.setItems(observableListProv);
}
Y este otro fragmento que es el que rellena el combo box:
private void rellenarComboBox(){
observableListProv.clear();
String query="SELECT p.id, c.id_proveedor FROM proveedores p LEFT JOIN catalogo c ON c.id_proveedor = p.id";
ConexionMySQL conexionBd = new ConexionMySQL();
Connection con = conexionBd.conectar();
Statement Squery;
try{
Squery = con.createStatement();
ResultSet resultado = Squery.executeQuery(query);
while(resultado.next()){
Proveedores pro = new Proveedores(resultado.getString("id"));
observableListProv.add(pro);
}
}catch(Exception e){
JOptionPane.showMessageDialog(null, "No se pudo rellenar el combobox de proveedores"+e);
}
}
Pero al ejecutar el proyecto, el combo box no muestra nada, solo despliega la lista pero no carga nada.
Lo que trato de hacer es que el proveedor aparezca en el combo box, para ello cree una tabla en MySQL llamada proveedores, la cual tiene 2 columnas: id y nombre, y la otra tabla, llamada catalogo que es donde guardo productos la cual tiene 4 columnas: id, nombre, precio e id_proveedor, por lo cual el id del proveedor quiero que este en la columna id_proveedor para que en el combo box aparezca el nombre de ese id.
Pero no se cuál es el error, si está en setComboBox();, rellenarCombobox();, o en la tabla de mysql.