[RESOLVIDO!] Pegar ID do item selecionado no JCombobox

Boa tarde, alguém poderia me dar uma ajuda criei um JCombobox que tras do banco de dados
os bancos cadastrados ex: santander, banco do brasil.
eu preciso que ao selecionar um banco, o id desse banco seja setado, em um textfield .

esse é meu metodo que traz os bancos cadastrados para o JCombobox, como eu pego agora o id desse banco selecionado no combobox.
Agradeço muito a ajuda se possível bem detalhada porque sou novato na área .

private void cbxbancos (){
      
    try {
        String sql = "select * from bancos ";
        pst = conexao.prepareStatement(sql);
        rs = pst.executeQuery();
        while (rs.next()) {

            String nombanco = rs.getString("nombanco");

            cbxbanco.addItem(nombanco);

        }
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
    }
}

Já criou uma classe Banco com os atributos id e nome?

Se não criou, crie e alimente uma coleção com os objetos do tipo Banco, depois fica mais fácil.

Eu não tinha criado estou criando agora depois de criar o que eu faço?

Você ja tem o código. É só fazer isso:

seu_campo.setText(rs.getInt("id_banco"));

Como o Staroski disse, é mais simples se vc usar uma classe com os objetos do tipo banco, quando for puxar, dá menos dor de cabeça.

Deu para pegar o id, porem pega o primeiro id cadastrado, e quando eu escolho no combobox
um outro banco, o id continua o mesmo, eu preciso que venha o id do banco selecionado.

Você chama esse método quando o JFframe inicia? Se sim, faz um método que seja executado a cada vez que você selecionar algum item. (Usa esse evento: ItemStateChanged). Se você usa o Netbeans, é só clicar em cima do combo, botão direito, evento, ItemState (eu acho), e o Changed.

eu uso o netbeans , o método é chamado ao iniciar sim, e agora qual codigo devo colocar no evento para que ao selecionar o banco do brasil trazer o id do banco do brasil?

Você já tem o código rapaz.

ainda assim não consigo fazer funcionar, o id esta vindo fixo do banco de dados e não muda quando eu mudo o banco no combobox, está muito dificil para mim solucionar esse problema

Você já tem uma lista de objetos do tipo Banco?
Criou um ComboBoxModel pra renderizar essa lista?

eu criei uma classe com os campos da tabela do banco de dados, mas não sei como fazer agora para que o combobox receba esse usuário e set e id do usuário.
Obs. aqui estou fazendo em outro projeto o projeto do banco referente a primeira pergunta está em uma maquina não acessível no momento, ai estou fazendo com outro projeto que se der certo aqui eu replicar lá. desde já agradeço muito a ajuda de vocês

esse é o metodo.
public Jcombobox() {
initComponents();
conexao = ModuloConexao.conector();
comboboxusuarios();

}
private void comboboxusuarios (){
  
try {
    String sql = "select * from tbusuarios ";
    pst = conexao.prepareStatement(sql);
    rs = pst.executeQuery();
    while (rs.next()) {
        
        
        int iduser = rs.getInt("iduser");
        String usuario = rs.getString("usuario");
       
        cbxusuarios.addItem(usuario);
       txtid.setText(rs.getString("iduser"));

    }
} catch (Exception e) {
    JOptionPane.showMessageDialog(null, e);
}

}

E essa a classe.
public class Combousuarios {

private int iduser;
private String usuario;
private String login;
private String perfil;

public int getIduser() {
    return iduser;
}

public void setIduser(int iduser) {
    this.iduser = iduser;
}

public String getUsuario() {
    return usuario;
}

public void setUsuario(String usuario) {
    this.usuario = usuario;
}

public String getLogin() {
    return login;
}

public void setLogin(String login) {
    this.login = login;
}

public String getPerfil() {
    return perfil;
}

public void setPerfil(String perfil) {
    this.perfil = perfil;
}

}

Pessoal consegui resolver so agora depois de muito trabalho (pesquisa) eu fiz assim criei dois métodos mostrados abaixo. obrigado aos dois que ajudaram!

public Jcombobox() {
initComponents();
conexao = ModuloConexao.conector();
//aqui eu chamei os dois metodos primeiro o metodo que preenche a combobox
// depois fui na janela onde tem o combobox e as caixas de texto e criei um evento na chanela mouse entered chamando o metodo que traz o id para o campo texto comboid();
comboboxusuarios();
comboid();

   esse método trás os usuários do banco de dados! 
}
private void comboboxusuarios (){
  
     try {
String sql = "select * from tbusuarios ";
pst = conexao.prepareStatement(sql);
rs = pst.executeQuery();
while (rs.next()) {
    
    
   // int iduser = rs.getInt("iduser");
    String usuario = rs.getString("usuario");
   
    cbxusuarios.addItem(usuario);
   //txtid.setText(rs.getString("iduser"));
   
}

} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}

Esse metodo tras o id do isuario selecionado no combobox.
}
private void comboid (){

     try {
String sql = "SELECT iduser FROM tbusuarios WHERE usuario='" + cbxusuarios.getSelectedItem().toString()+"'";
pst = conexao.prepareStatement(sql);
rs = pst.executeQuery();
while (rs.next()) {
    
    
    int iduser = rs.getInt("iduser");
    //String usuario = rs.getString("usuario");
   
   // cbxusuarios.addItem(usuario);
   txtid.setText(rs.getString("iduser"));
   
}

} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}

Inicialmente você estava falando sobre Banco agora é Usuario?
Não faz mal, o conceito é o mesmo, tenha em mente que o Swing utiliza MVC ao extremo, quase todos os seus componentes possuem uma interface Model para fornecer os dados aos compoentes, com o JComboBox não é diferente, você pode criar o seu próprio ComboBoxModel para renderizar uma coleção de objetos, isso evita de você ter que ficar fazendo laços para preencher o componente ou acessar o banco diversas vezes.

Hoje você está fazendo um acesso ao banco para preencher o JComboBox e outro para obter as informações do item selecionado.
Se você criar um ComboBoxModel, isso é desnecessário.

Imagina que você tem a seguinte classe para representar seus usuários:

public class Usuario {

    private int id;
    private String nome;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

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

Você pode então ter uma coleção de objetos do tipo Usuario, assim:

private List<Usuario> usuarios;

E alimentar essa lista da seguinte forma:

usuarios = new ArrayList<>();
String sql = "select iduser, usuario from tbusuarios ";
PreparedStatement pst = conexao.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
    int id = rs.getInt("iduser");
    String nome = rs.getString("usuario");

    Usuario usuario = new Usuario();
    usuario.setId(id);
    usuario.setNome(nome);
    usuarios.add(usuario);
}

Tendo um List<Usuario> usuarios vai facilitar bastante as coisas, agora basta você ter um ComboBoxModel para renderizar essa lista de usuários:

private class UsuarioComboboxModel extends DefaultComboBoxModel<String> {

    /**
     * Chamado pelo JComboBox para renderizar o conteúdo da posição informada
     */
    @Override
    public String getElementAt(int posicao) {
        Usuario usuario = usuarios.get(posicao); // obtém o uauário da posição informada
        return usuario.getNome(); // renderiza o nome do usuário
    }
}

Após preencher sua lista de usuários, basta você setar o modelo do JComboBox, assim:

cbxusuarios.setModel(new UsuarioComboboxModel());

E para obter as informações do Usuario selecionado, é só obter o objeto Usuario correspondente à posição selecionada no JComboBox, assim:

int posicaoSelecionada = cbxusuarios.getSelectedIndex();
Usuario usuario = usuarios.get(posicaoSelecionada);
txtId.setText(String.valueOf(usuario.getId()));
txtNome.setText(usuario.getNome());