Recuperar object de uma Jcombobox JAVA

bom dia, alguém poderia me auxiliar?
preciso recuperar os dados de uma Jcombobox, estou usando MVC + DAO

minha classe Pessoa Model:

package Model;

public abstract class Pessoa {

//atributos
private int idPessoa;
private String nome;
private String cpf;
private String email;
private String dt_nascimento;

//getter and setters
public int getIdPessoa() {
    return idPessoa;
}

public void setIdPessoa(int idPessoa) {
    this.idPessoa = idPessoa;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getCpf() {
    return cpf;
}

public void setCpf(String cpf) {
    this.cpf = cpf;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getDt_nascimento() {
    return dt_nascimento;
}

public void setDt_nascimento(String dt_nascimento) {
    this.dt_nascimento = dt_nascimento;
}

@Override
public String toString() {
    return getNome();
}

}

minha DAO que pesquisa pessoas do banco de dados:

package DAO;

import Model.Login;
import Model.Pessoa;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class LoginDAO {

Login dados = new Login();

//instanciando classe de conexão, chamando o metodo getConexao
Connection conn = ConexaoDAO.getConexao();

//preparar e proteger os dados
PreparedStatement stmt = null;

//organizar para exibir dados
ResultSet rs = null;
    
//metodo para validar login
public boolean validar(String login, String senha){
    
    dados.setEmail(login);
    dados.setLogin(login);
    
    dados.setSenha(senha);
    
    boolean retorno = false;
    
    try {
        stmt = conn.prepareStatement("SELECT * FROM login WHERE login = ? AND senha = ?");
        
        stmt.setString(1, login);
        stmt.setString(2, senha);
        
        rs = stmt.executeQuery();
        
        if (rs.next()){
            retorno = true;
        }
        
    } catch (SQLException e) {
        System.out.println("Erro ao validar: " + e);
        retorno = false;
        
    }
    
    return retorno;
}

//retorno 
public List<Pessoa> retornoLastId(){
    
    List<Pessoa> lastInserId = new ArrayList<>();
  
    
    try {
        //consulta simples
        stmt = conn.prepareStatement("SELECT LAST_INSERT_ID() AS id");

        //executeQuery realziada consulta no banco 
        rs = stmt.executeQuery();
        
        if (rs.next()) {
            Login dadosId = new Login();
            
            dadosId.setIdPessoa(rs.getInt("id"));
            
            lastInserId.add(dadosId);
            
        }
            
    } catch (Exception e) {
        System.out.println("Erro ao pegar ultimo ID: " + e);
    }
    
    return lastInserId;
}

//metodo para verificar se existe cpf
private boolean verificCpfExistente(String cpf){
    
    dados.setCpf(cpf);
    
    boolean retorno = false;
    
    try {
        stmt = conn.prepareStatement("SELECT cpf FROM pessoa WHERE cpf = ?");
        
        stmt.setString(1, dados.getCpf());
        
        rs = stmt.executeQuery();
        
        if (rs.next()){
            retorno = true;
        }
        
        System.out.println("cpf existe");
        
    } catch (SQLException e) {
        System.out.println("Nenhum cpf: " + e);
        retorno = false;
        
    }
    
    return retorno;
}

//metodo para verificar se existe cpf
private boolean verificaEmailExistente(String email){
    
    dados.setEmail(email);
    
    boolean retorno = false;
    
    try {
        stmt = conn.prepareStatement("SELECT email FROM pessoa WHERE email = ?");
        
        stmt.setString(1, dados.getEmail());
        
        rs = stmt.executeQuery();
        
        if (rs.next()){
            retorno = true;
        }
        
        System.out.println("email ja existe");
        
    } catch (SQLException e) {
        System.out.println("Nenhum email: " + e);
        retorno = false;
        
    }
    
    return retorno;
}


//metodo para verificar se existe cpf
private boolean verificaLoginExistente(String login){
    
    dados.setLogin(login);
    
    boolean retorno = false;
    
    try {
        stmt = conn.prepareStatement("SELECT login FROM login WHERE login = ?");
        
        stmt.setString(1, dados.getLogin());
        
        rs = stmt.executeQuery();
        
        if (rs.next()){
            retorno = true;
        }
        
        System.out.println("login ja existe");
        
    } catch (SQLException e) {
        System.out.println("Nenhum login: " + e);
        retorno = false;
        
    }
    
    return retorno;
}


public String pessoaInsere(String nome, String cpf, String email, String login){
    
    String msg;
     
    dados.setCpf(cpf);
    dados.setNome(nome);
    dados.setEmail(email);
    dados.setLogin(login);
    
    //verifica se o cpf ja existe
    if (verificCpfExistente(dados.getCpf()) == true) {
        msg = "cpf ja existe!\n";
    }else{
    
        if (verificaEmailExistente(dados.getEmail()) == true) {
            msg = "email ja existe!\n";
        }else{
            if (verificaLoginExistente(dados.getLogin()) == true) {
                msg = "login ja existe!";
            }else{
                try{
                    //inserir sql - insert into
                    stmt = conn.prepareStatement("INSERT INTO pessoa (nome, cpf, email) VALUES (?,?,?)");

                    //exatamente a ordem q foi passada das colunas
                    stmt.setString(1, dados.getNome());
                    stmt.setString(2, dados.getCpf());
                    stmt.setString(3, dados.getEmail());

                    stmt.execute();
                    msg = "Inserido 1";
                    System.out.println("inseriu pessoa");        
                } catch (SQLException ex) {
                     msg = "Erro ao inserir dados: " + ex;
                }
            }
        }
    }
    return msg;
        
}

public String loginInsere(String login, String senha){
    
    dados.setLogin(login);
    dados.setSenha(senha);
    
    String msg;
    
    if (verificaLoginExistente(dados.getLogin()) == true) {
         msg = "login ja existe!";
    }else{
    
    retornoLastId().forEach((a) -> {
        dados.setIdPessoa(a.getIdPessoa());
    });
        if(dados.getIdPessoa() == 0){
            msg = "erro de id";
        }else{
            try {            

                stmt = conn.prepareStatement("INSERT INTO login (id_pessoa, login, senha) VALUES (?,?,?)");

                //exatamente a ordem q foi passada das colunas
                stmt.setInt(1, dados.getIdPessoa());
                stmt.setString(2, dados.getLogin());
                stmt.setString(3, dados.getSenha());

                //executar a sql
                stmt.execute();

                msg = "login Inserido com Sucesso!:";

            } catch (SQLException ex) {
                msg = "Erro ao inserir dados: " + ex;
                System.out.println("erro: " + ex);
            }
        }
    }
    return msg;

}

}

minha controller passando tudo:

package Controller;

import DAO.PessoaDAO;
import Model.Pessoa;
import Model.Usuario;
import java.util.List;

public class LoginController {

PessoaDAO dadosU = new PessoaDAO();

Usuario Obj = new Usuario();


public List<Pessoa> listarPes(){
    
    return dadosU.listarPessoas();
}

public Object getIdPessoa(){
    
    Obj.getIdPessoa();
    return Obj;
    
}

agora na minha VIEW listando os dados na combobox:

 public void carregarComboBox(){
    
    cbPessoas.removeAllItems();
    
    //carrega itens do banco de dados
    login.listarPes().forEach((a) -> { 
         cbPessoas.addItem(a);
    });

}

agora aq é a parte q vem o erro quando clino no botão para recuperar somente o id da bombox da um erro de cast

esse codigo a baixo vai no botão: recuperar idPessoa da combobox

LoginController loginCont = (LoginController) cbPessoas.getSelectedItem();
    
    JOptionPane.showMessageDialog(null, "id: " + loginCont.getIdPessoa());

 Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: Model.Usuario cannot be cast to Controller.LoginController

O seu cbPessoas possui um objeto do tipo Usuario mas você está tentando atribuir à uma variável do tipo LoginController.