Preencher uma JtextField depois que a Jcombobox for selecionarda[RESOLVIDA]

Bom dia.
Estou querendo ao selecionar uma Jcombobox que receber os estados cadastrados no banco de dados, ele preenchar a JtextField com dados relacionados a estado selecionado.

Ex: Na combobox eu seleciono o estado de São Paulo, então irar preencher a JtextField com a sigla SP.

como esta minha combobox

private void jcbEstadoMouseClicked(java.awt.event.MouseEvent evt) {                                       
        // Evento para limpar e repreencher o combobox
        EstadosDao dao = new EstadosDao();
        List<Estados> listadeestados = dao.listaEstados();
        jcbEstado.removeAllItems();

        for (Estados e : listadeestados) {
            jcbEstado.addItem(e.toString());
        }
    }

metodo listaEstados no dao:

public List<Estados> listaEstados(){
        //Criando lista
        try{
            List<Estados> lista = new ArrayList<>();
            String sql = ("select * from tb_estados");
            PreparedStatement pst = con.prepareStatement(sql);
            ResultSet rs = pst.executeQuery();
            
            while (rs.next()){
                Estados obj = new Estados();
                obj.setCodigo(rs.getInt("codigo_estado"));
                obj.setEstado(rs.getString("estado"));
                obj.setUf(rs.getString("uf"));
                
                lista.add(obj);
            }
            return lista;
        }catch (SQLException e){
            JOptionPane.showMessageDialog(null, "Erro"+ e);
            return null;
        }
    }

classe estado:

public class Estados {
    
    //atributos
    private int codigo;
    private String estado, uf;
    
       
    //getters and setters

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getUf() {
        return uf;
    }

    public void setUf(String uf) {
        this.uf = uf;
    }
    @Override
    public String toString(){
        return this.getEstado();
    }    
    
}

Vc deve escutar as mudanças da combo:

jcbEstado.addItemListener(new ItemListener() {
    @Override
    public void itemStateChanged(ItemEvent event) {
       if (event.getStateChange() == ItemEvent.SELECTED) {
          Object item = event.getItem();
          // preencha o JTextfield aqui
       }
    }       
});

esse evento itemStateChanged eu crio no combobox

Não entendi. Foi uma pergunta ou vc está afirmando? No exemplo que postei, um listener (ItemListener) está sendo adicionado ao combobox jcbEstado.

Desculpa…foi uma pergunta esqueci de colocar ?..
agora so tem o itemStateChanged para adicionar na combobox

Ah tah, vc usa ferramentas visuais. Nunca usei, mas deve ser essa opção. Adiciona ela, e veja no código como que o listener é montado.

Obrigado Lusca_Camara.
O conselho que você me passou me deu uma luz, resolvi da seguinte forma…
Adicionei o evento ActionPerformed na combobox com o seguinte codigo:

private void jcbEstadoActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        jcbEstado.addItemListener(new ItemListener(){
            @Override
            public void itemStateChanged(ItemEvent event){                
                if (event.getStateChange()== ItemEvent.SELECTED){
                    Object item = event.getItem();
                    Estados e = new Estados();
                    e = (Estados)jcbEstado.getSelectedItem(); 
                    jtfUf.setText(e.getUf());                    
                }
                
            }
        });
    }

Obrigado :slightly_smiling_face:

1 curtida