Buscar valor de estoque conforme o nome do produto

Ola galera eu sou novato em busca, criei uma consulta pra retornar o valor do estoque mas o campo estoque esta retornando com o valor null.

CompraDao

public Produto consultar(Object produto2) {
    String sql = "SELECT estoque FROM produto WHERE NOME = ?";
    try
    {
    	PreparedStatement stmt = getConnection().prepareStatement(sql);
    	ResultSet rs = stmt.executeQuery();
    	stmt.setString(1, (String) produto2);
    	
    	while(rs.next()){
    		Produto produto = new Produto();
    		produto.setEstoque(rs.getInt("estoque"));	
    	}            
    } catch(SQLException e) {
        e.printStackTrace();
    }
	return null;
}	`

CompraController

public Produto buscaEstoqueProduto(Object produto) throws SQLException {
    CompraDao dao = new CompraDao();
    return dao.consultar(produto);
}

TelaPrincipal

private void onClickLocalizar() {
    CompraController cc = new CompraController();
    try {
        Produto c = cc.buscaEstoqueProduto(produto);
        String id = String.valueOf(c.getId());
        estoque = c.getEstoque();
    } catch (SQLException e) {
        JOptionPane.showMessageDialog(this,	"Ocorreu um erro, tente novamente!n" +
			e.getLocalizedMessage()
		);
    } catch (NullPointerException e){
        JOptionPane.showMessageDialog(this, "Contato não localizdo ou não existe!n" + 
			e.getLocalizedMessage()
		);
    }
}

JButton btnCalcular = new JButton("Calcular");
	btnCalcular.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			
			System.out.println(produto);
			System.out.println(estoque);
		}
	});
	btnCalcular.setBounds(445, 122, 89, 23);
	contentPane.add(btnCalcular);

no método consultar vc especificou o retorno da função como null…
no caso ele deve retornar o produto que vc consultou. Um outro detalhe é que o retorno pode ser uma lista de produtos com a mesma descrição (se vc pesquisar camisa, por exemplo, ele pode te retornar CAMISA POLO, CAMISA SOCIAL, etc). Então o correto seria ele te retornar uma lista.
É importante você sempre fechar as conexões também (ResultSet, PreparedStatement, Connection), caso sua aplicação precise acessar várias vezes o banco, se não for fechada a cada consulta, ele lançará um SQLExeption - Too many connections.
Tem mais algumas considerações (vc está buscando somente o estoque do produto, mas depois, na sua tela principal vc precisou pegar o id do produto, que no caso sempre será null pois você consultou), mas seria legal vc começar estudando a apostila da Caelum (que também tem várias outras apostilas gratuitas e excelentes).

public List<Produto> consultar(String produto2) {
    String sql = "SELECT * FROM produto WHERE NOME = ?";
    List<Produto> produtos = new ArrayList<Produto>();
    try
    {
    	PreparedStatement stmt = con.prepareStatement(sql);
    	
    	stmt.setString(1, produto2);
    	ResultSet rs = stmt.executeQuery();

    	while(rs.next()){
    		Produto produto = new Produto();
    		produto.setEstoque(rs.getInt("estoque"));
            // outros setters pertinentes,  comoid (que vc irá usar na tela principal) descrição e preço, por exemplo
            produtos.add(produto);	
    	}            
    } catch(SQLException e) {
        e.printStackTrace();
    }
    rs.close();
    stmt.close();
    con.close();
	return produtos;
}	`

public List<Produto> buscaEstoqueProduto(String produto) throws SQLException {
    CompraDao dao = new CompraDao();
    return dao.consultar(produto);
}

Crie uma lista de produtos com visibilidade global em sua tela principal (fora dos métodos auxiliares)

private void onClickLocalizar() {
    CompraController cc = new CompraController();
    try {
        minhaListadeProdutos = cc.buscaEstoqueProduto(produto);

    } catch (SQLException e) {
        JOptionPane.showMessageDialog(this,	"Ocorreu um erro, tente novamente!n" +
			e.getLocalizedMessage()
		);
    } catch (NullPointerException e){
        JOptionPane.showMessageDialog(this, "Contato n&atilde;o localizdo ou n&atilde;o existe!n" + 
			e.getLocalizedMessage()
		);
    }
}

JButton btnCalcular = new JButton("Calcular");
	btnCalcular.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			
			for(Produto p : minhaListadeProdutos){
              System.out.println("Produto id : " + p.getId+ " estoque: " + p.getEstoque);
            }
		}
	});
	btnCalcular.setBounds(445, 122, 89, 23);
	contentPane.add(btnCalcular);

link apostila caelum java web (que contém uma explicação ótima sobre JDBC). https://www.caelum.com.br/download/caelum-java-web-fj21.pdf