Pessoal, boa noite!
Tenho um JComboBox, cujos itens são criados da seguinte forma:
public class CursoGUI extends javax.swing.JFrame {
public class CodigoDescricao
{
private int id;
private String descricao;
public CodigoDescricao(int id, String descricao)
{
this.id = id;
this.descricao = descricao;
}
@Override
public String toString()
{
return this.descricao;
}
public int getID()
{
return this.id;
}
}
public CursoGUI()
{
initComponents();
setLocationRelativeTo(null);
cursoDAO = new CursosDAO();
cursoDAO.abrirConexao("cursos");
// O método "getCampus" pega os registros através de um comando SELECT no banco de dados, que retorna o ID e a DESCRICAO da tabela
ArrayList<Campus> campus = cursoDAO.getCampus();
jComboBoxCampus.removeAllItems();
for(int j = 0; j < campus.size(); j++)
{
jComboBoxCampus.addItem(new CodigoDescricao(campus.get(j).getID(), campus.get(j).toString()).toString());
}
}
}
Até ai tudo bem, está funcionando. O problema é quando tento recuperar esses dados, da seguinte forma:
campus.setDescricao(((CodigoDescricao)jComboBoxCampus.getSelectedItem()).toString());
campus.setID(((CodigoDescricao)jComboBoxCampus.getSelectedItem()).getID());
Nessas duas linhas acontece o seguinte erro: >Não se pode converter uma instância de “class java.lang.String (no class loader)” para uma instância de “class GUI.CursoGUI$CodigoDescricao (loaded by instance of sun.misc.Launcher$AppClassLoader(id=797))”<
Achei vários exemplos na net que o pessoal implementa algo bem semelhante ao que fiz e recuperam os dados exatamente como fiz nessas duas linhas. Alguém saberia me dizder o que estou fazendo de errado?
Abraços,
Mariana