Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JorgitoDF

Pegar ID do campo selecionado no Combobox

Recommended Posts

Bom dia a todos,

 

Estou com uma dúvida em relação a como fazer para pegar o ID de um registro carregador numa combo box, por exemplo, uma combobox carrega e exige os registro de uma tabela do banco de dados mas preciso pegar o ID referente ao registro que será selecionado, será que alguém pode me ajudar?

 

Aqui o código da classe DAO onde lista todos os vendedores cadastrados na tabela no BD.

public List<VendedorBEAN> listarTodos() throws PersistenciaException {
		
	List<VendedorBEAN> listaVendedor = new ArrayList<VendedorBEAN>();
		
	Connection conn = Conexao.open();  
        
        PreparedStatement pstm = null;  
          
        String sql = "SELECT * FROM tb_vendedor";
        
		try {

	        pstm = conn.prepareStatement(sql);  
	        ResultSet resultset = pstm.executeQuery();
	        
	        while (resultset.next()) {
	        
                VendedorBEAN vendedorBean = new VendedorBEAN();
	        	                    vendedorBean.setId_vendedor(resultset.getInt("id_vendedor"));
	        	vendedorBean.setNome_vendedor(resultset.getString("nome_vendedor"));

	        	
	        	listaVendedor.add(vendedorBean);
	        }
	        
	        Conexao.close(conn, pstm, resultset);  
	        
        } catch (SQLException e) {  
            e.printStackTrace();
            throw new PersistenciaException(e.getMessage(), e);
        }    
        return listaVendedor;
	}

 

Aqui o código que converte a lista de vendedores da classe DAO em um String

	private String[] converteVendedor(List<VendedorBEAN> lista) {
        String[] result = new String[lista.size()];
        for (int i = 0; i < lista.size(); i++) {
        	VendedorBEAN vendedorBEAN = lista.get(i);
            result[i] = vendedorBEAN.getNome_vendedor();
        }
        return result;
    }

 

Este é o código que carrega a combobox com a String acima, porém só vem os nomes dos vendedores cadastrados no BD, como eu faço para exibir o nome e ao mesmo tempo pegar o ID do nome selecionado na combobox ??

 

    @SuppressWarnings({ "rawtypes", "unchecked" })
	private JComboBox getJcb_vendedor() {
    	if(jcb_vendedor == null) {
			try {
	    		VendedorDAO vendedorDAO = new VendedorDAO();
	    		ComboBoxModel comboVendedorModel;
	    		comboVendedorModel = new DefaultComboBoxModel(converteVendedor(vendedorDAO.listarTodos()));
	    		jcb_vendedor = new JComboBox();
	    		jcb_vendedor.setModel(comboVendedorModel);
			} catch (PersistenciaException e) {
				e.printStackTrace();
			}
    	}
    	return jcb_vendedor;
    }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez você não saiba, mas dá para passar para o ComboBox um List de VendedorBEAN ao invés de um List

de String. Só que para isso, você precisará adicionar um por um usando um forreach. Assim:

 

//...

for(VendedorBEAN vendedor: listDeVendedor){

seuComboBox.addItem(vendedor);

}

//...

 

Você deve mudar também a declaração do ComboBox colocando entre "<>" o objeto que será listado. Assim:

//...

JComboBox<VendedorBEAN> seuComboBox = getJcb_vendedor()

//...

//O Model também ganha isso

ComboBoxModel<VendedorBEAN> comboVendedorModel = new DefaultComboBoxModel<VendedorBEAN>();

//...

//O seu método deve retornar JComboBox<VendedorBEAN>. Assim:

private JComboBox<VendedorBEAN> getJcb_vendedor() {

//...

 

Assim, na hora que você usar getSelectedItem, você vai receber o objeto de VendedorBEAN e poderá, então, pegar o ID.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro está no sql

 

implemente o metodo

public List<VendedorBEAN> getPeloId(int id)  {
		
	List<VendedorBEAN> listaVendedor = new ArrayList<VendedorBEAN>();
		
	Connection conn = Conexao.open();  
        
        PreparedStatement pstm = null;  
          
        String sql = "SELECT * FROM tb_vendedor WHERE id=?";
        
		try {

	        pstm = conn.prepareStatement(sql);  
			pstm.setInt(1, id);
	        ResultSet resultset = pstm.executeQuery();
	        
	        while (resultset.next()) {
	        
                VendedorBEAN vendedorBean = new VendedorBEAN();
	        	                    vendedorBean.setId_vendedor(resultset.getInt("id_vendedor"));
	        	vendedorBean.setNome_vendedor(resultset.getString("nome_vendedor"));

	        	
	        	listaVendedor.add(vendedorBean);
	        }
	        
	        Conexao.close(conn, pstm, resultset);  
	        
        } catch (SQLException e) {  
            e.printStackTrace();
            throw new PersistenciaException(e.getMessage(), e);
        }    
        return listaVendedor;
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.