7
respostas

Duvida com campo automatico

Galera estou com uma duvida, vamos supor que eu vo ter um xhtml de produto, e depois irei ter uma classe java de produto com seus atributos e metodos, acho que também irei ter um atributo do tipo Estoque na classe produto. Até ai tudo bem, ai quero fazer uma compra, onde cada quantidade de produto ira subir o valor do meu preço do produto. Exemplo irei ter algum metodo parecido com isso, não testei nada é só uma duvida que eu quero tirar.

    public void comprarProduto() {
        saldoCompra += valorProduto + this.getEstoque.quantidade;
        System.out.println(saldoCompra);    
}

Ok ai no meu xhtml no Compra queria ter um campo do valor do produto, e com a quantidade e depois com o valorTotal da compra. Mais com esse valorTotal queria que aparecesse automaticamente com somando o meu o preco do meu produto e com a quantidade, como seria esse campo? seria um output? input? queria um exemplo

7 respostas

Olá Alisson,

Nesse caso, temos que saber o quanto irá subir. Por exemplo, você pensa em dar um acréscimo de 10% sobre o valor atual do produto quando a procura tiver grande? Seria isso ? Ou quando você fala de quantidade, fala da quantidade de produtos naquela compra?

Isso Danyllo ainda não pensei em dar %, e sim a quantidade de produtos naquela compra, por exemplo vou comprar um produto que custa 20 reais correto? Ai queria comprar mais um daquele produto, e se ele custa 20 reais como queria mais um automaticamente o campo que eu estou em duvida ficar como valor Total 40 reais entendeu? como fazer isso?

Então, pelo que entendi você deve fazer o seguinte:

1 - Em compra você deve registrar um "ItemDeCompra", que possui os seguintes atributos: produto e quantidade

2 - Para cada item você deve retornar o valor total:

public double getValorTotal() {
    return this.produto.getValor() * this.quantidade;
}

3 - Na classe "Compra" deve ter um metodo parecido que percorre o array de itens de compra e retorna soma o valor total de cada item (metodo anterior).


public double getValorTotal(){
    double total = 0;
    for(ItemDeCompra item : itens){
        total += item.getValorTotal();
    }
    return total;
}

Assim:

1- Compra com 2 camisetas (20 cada) ItemDeCompra: produto: Camiseta quantidade: 2

2- Método getValorTotal em compra: percorre o for e soma item.getValorTotal(). Isso retorna o valor de 40.0.

Sim sim Danyllo obrigado por responder, a parte do código eu tava no caminho certo, o problema é no meu xhtml, como deixar o campo com o valor? é um inputText esse campo para deixar ele com o valor?

Nesse caso como é apenas para exibição use o outputText:

<h:outputText value="#{MBean.compra.getValorTotal()}" />

Referência: https://www.tutorialspoint.com/jsf/jsf_outputtext_tag.htm

Obrigado mano era isso mesmo!

Tamo junto. Espero ter ajudado. Marque o tópico como solucionado. Bons estudos!