I have the following code to update data in a window according to the chosen parameter in the ComboBox. The problem is that it gives me a cast error "java.lang.String cannot be cast to rosales.Rosal"
and I do not know exactly where the error is or how I could fix it.
This is the action event:
private void comboNombresActionPerformed(java.awt.event.ActionEvent evt) {
Object seleccionado = comboNombres.getSelectedItem();
Rosal unRosalSeleccionado = gestora.devuelveRosalPorNombre(seleccionado);
ctMaximoConsulta.setText(unRosalSeleccionado.getPrecioMaximo().toString());
ctMinimoConsulta.setText(unRosalSeleccionado.getPrecioMinimo().toString());
if(unRosalSeleccionado.getDisponible()){
checkBoxStockConsulta.setSelected(true);
}
}
Where the manager is an object of the InformationManager class in which the method returnsRosalPorNombre (selected) is shown below:
public Rosal devuelveRosalPorNombre(Object seleccionado) {
Rosal rosalSeleccionado =(Rosal) seleccionado;
for (Rosal unRosal : losRosales) {
if (unRosal.getNombre().equals(rosalSeleccionado.getNombre())) {
unRosal = rosalSeleccionado;
return unRosal;
}
}
return null;
}
Here you have the Rosal class code in case you need it to clarify:
public class Rosal implements Comparable<Rosal> {
String nombre;
Float precioMinimo;
Float precioMaximo;
Boolean disponible;
public Rosal(String nombre, Float precioMinimo, Float precioMaximo, Boolean disponible) {
this.nombre = nombre;
this.precioMinimo = precioMinimo;
this.precioMaximo = precioMaximo;
this.disponible = disponible;
}
public String getNombre() {
return nombre;
}
public Float getPrecioMinimo() {
return precioMinimo;
}
public Float getPrecioMaximo() {
return precioMaximo;
}
public Boolean getDisponible() {
return disponible;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setPrecioMinimo(Float precioMinimo) {
this.precioMinimo = precioMinimo;
}
public void setPrecioMaximo(Float precioMaximo) {
this.precioMaximo = precioMaximo;
}
public void setDisponible(Boolean disponible) {
this.disponible = disponible;
}
@Override
public int compareTo(Rosal t) {
int criterio = this.getNombre().compareTo(t.getNombre());
return criterio;
}
/**
* se considerará que un rosal es igual a otro si tiene el mismo nombre
*
* @param o
* @return
*/
@Override
public boolean equals(Object o) {
Rosal rosss = (Rosal) o;
boolean criterio = false;
if(this.getNombre().equals(rosss.getNombre())){
criterio = true;
}
return criterio;
}
@Override
public String toString() {
String solucion = this.nombre+
";"+this.precioMinimo+
";"+this.precioMaximo+
";"+this.disponible;
return solucion;
}
}
Thank you very much everyone for your help in advance.