Pegar Objeto - Código de um ComboBox

2 respostas
java
Diegosimoncarmona

Olá,

Estou com duvida como pegar o Objeto, na verdade o código dele, tenho um combo box que carrego algumas categorias, mas no combo estou exibindo somente o nome dele, mas preciso realmente é pegar o código daquela determinada categoria que foi selecionada para poder gravar ela no banco…

segue meu método responsável por preencher o combobox…

public List<Categoria> buscarTodos() throws SQLException{
    List<Categoria> listaCategoria = new ArrayList<Categoria>();
    String sql = "select * from categoria order by descricao";
    PreparedStatement comando = bd.prepareStatement(sql);
    ResultSet cursor = comando.executeQuery();
    
    while(cursor.next()){
        Categoria cat = new Categoria();
        cat.setCodigo(cursor.getLong("codigo"));
        cat.setDescricao(cursor.getString("descricao"));
        listaCategoria.add(cat);
    }
    return listaCategoria;
}

Carrego meu combo no meu construtor da minha classe, para quando executa-la já esta preenchido…

List<Categoria> listaCat = new ArrayList<Categoria>();
public teste() {
    try {
        initComponents();
        Connection bd = ConnectionFactory.getConection();
        CategoriaDAO dao = new CategoriaDAO(bd);
        listaCat = dao.buscarTodos();
        for(Categoria cat : listaCat){
            comboCategoria.addItem(cat.getDescricao());
        }
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
}

Agora é a minha duvida…
exemplo, eu carrego 5 categorias, cat 1, cat 2, cat 3, cat 4, cat 5…
mas essas são apenas exemplos, por que estarei carregado varias categorias…
mas em vez que pegar a descrição delas, eu quero é pegar o código delas…

andei procurando um pouco, e alguns exemplos vi algo parecido com isso que montei…

Categoria cat = (Categoria)comboCategoria.getSelectedItem();
cat.getCodigo();

mas não obtive sucesso, ele da um erro de
Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.lang.String cannot be cast to br.com.projeto.banco.model.Categoria…

Alguma solução?
Galera Obrigado desde Já!!

2 Respostas

TEC.ER

Categoria cat = (Categoria)comboCategoria.getSelectedItem() +1;

tenta seta com +1 , pois no combo a primeira posicação e zero…

Diegosimoncarmona

Mas o problema é que vou carregar varias categorias, e não somente essas fixas…
por isso que vou precisar pegar o código delas…

Criado 9 de fevereiro de 2016
Ultima resposta 9 de fev. de 2016
Respostas 2
Participantes 2