¿En tu lógica, que te dice esto?
java.lang.String can not cast to redfarma.ComboProveedor
JComboBox acepta un tipo de dato como ítem y éste es
String. Tu le estás pasando un objeto ComboProveedor y el compilador lo está tratando de convertir a String pero no puede y lanza la excepción.
ComboProveedor puede ser un objeto y que sobreescriba el método
toString(). Ejemplo:
{
{
this.name = name;
this.description = description;
}
{
return name;
}
public String getDescription
() {
return description;
}
@Override
{
return name;
}
}
Y ahora ya puedes guardarlo en el combo:
comboBox.
addItem(new Provider("Empresa abc",
"Proveedor de productos escolares"));
Y para recuperarlos:
String name
= item.
getName(); // retorna "Empresa abc" String description
= item.
getDescription(); // retorna "Proveedor de utiles escolares
El método
toString() es llamado automáticamente en todo contexto en donde se acepten String y se envíe un objeto. Por eso, al agregar el objeto Provider al JComboBox, en realidad se está llamando a su método
toString() que retorna el nombre del proveedor.
Saludos.