ProgressBar bug

Então como alguns sabem o padrão de uma progressbar é 100, porem meu programa passa desse valor, coloquei o valor máximo como 110 e a progressbar tira 10% do valor, por exemplo coloquei o valor 40 e aparece na progress bar como 36, se eu colocar o máximo como 150 ele vai tirar 50% do valor setado, alguém sabe o pq disso?

Claro, é regra de três.

O valor máximo sempre vai corresponder à 100%.
Se você definiu 110 como sendo o valor máximo, então ao setar 40 você estará setando 36% do valor máximo.

Veja:

110 equivale à 100%
    assim como
 40 equivale à x%
    calculando
  x = 40 * 100 / 110 = 36
    logo
 40 equivale à 36%

Se você tiver um progress bar para ilustrar o progresso de um processo que tem 5 etapas, o valor máximo vai ser 5, então quando setar o progresso como 1, vai corresponder a 20%, 2 vai ser 40%, 3 vai ser 60%, 4 vai ser 80% e finalmente o 5 indicará 100%.

3 curtidas

Entendi oq quis dizer, outra duvida, no netbeans setei o valor maximo como 300 e só vai até 100%, sabe me dizer pq?

Essa pergunta mostra que não entendeu.

Vamos lá: Como eu disse no post anterior, o valor máximo sempre corresponde à 100%.
O progress bar sempre mostra um valor percentual entre 0 e 100 por cento.

Se você seta o valor máximo como 300, significa que precisará de 300 passos para chegar à 100%.

1 curtida

entendi sim, até a parte da porcentagem entendi, se o valor for 200% quando setar vai corresponder a metade, exemplo setei 100, vai ir 50, e pra eu setar 100 teria q ser 200, até fiquei testando um pouco do que você falou aqui no netbeans, mas o problema é que eu tenho 5 combo box que adicionam 50% (cada) em uma só progressbar, então se eu selecionar 2 combo box o valor já fica 100%, se eu diminuir esses 50% o programa fica muito igual a outro valor de de outra progress bar, vou postar uma print pra ficar mais facil de entender

htt p://imgur.com/a/5k1S2 tira o espaço do P

Seguinte, selecionei alchemist e adicionou 55%, se eu selecionar outro alchemist na outra combo box o valor fica 110%, e o jprogressbar nao passa dos 100%.
pensei em diminuir o valor de alchemist pra 20% (5x20=100) 5 combo box no caso, mas ai todos os selecionados ficariam com o valor de 20, alguns quero colocar 20 e outros 50 30 etc.
p.s to me referindo apenas a jprogressbar azul

Seus combobox não podem adicionar 50%. Releia os posts do @staroski .

Pra entender melhor, voltemos à sua lógica: se eu selecionar os 5 combobox, qual o valor numérico máximo? Esqueça porcentagens, nos diga qual o valor total dos combos somados. Exemplo:

Combo 1: 50
Combo 2: 40
Combo 3: 30
Combo 4: 20
Combo 5: 10

O total é 150. Nesse caso, 100% equivale à 150. Se eu selecionar somente o Combo 1, o percentual seria de 1/3, ou 33,333% aproximadamente. Não 50%, que é o que parece que você está tentando.

Abraço.

Você vai ter que alterar o “bound”, da barra.
No final das contas, vai ser o mesmo que usar a proporção, conforme esclarecido por staroski e TerraSkilll.

public void progresso(int range) {
        BoundedRangeModel boundRenge = new DefaultBoundedRangeModel();
        boundRenge.setMaximum(120);//substituir o 120 pela variável range
        JProgressBar barraProgresso = new JProgressBar(boundRenge);
        barraProgresso.setValue(115);//quando você quer manipular o progresso
        System.out.println("\nMax: " + +barraProgresso.getMaximum()
                + "\nMin: " + barraProgresso.getMinimum()
                + "\nValor inteiro: " + barraProgresso.getValue()
                + "\nPorcentagem: " + barraProgresso.getPercentComplete()+"%");
        //restante de sua codificação       
    }

A vantagem é não ter que fazer conversões.

N deu c.c acho que o addler foi o que chegou mais perto de entender minha pergunta, só queria passar desses 100%, sem diminuir nem nada, apenas mostrar 200% c.c

So um adendo, quem tem 200 ou 300% é o personagem. A barra de progresso só conhece 100% do TODO. Se a sua necessidade é de exibição, use proporção, fazendo uso da logica difusa.
Resumo, multiplique o valor da barra de progresso por um peso. Se o peso for 2 sera exibido 200%. Fora isso, não sobra muita elegância é como se quisesse usar uma colher como uma pá. Em todas as postagens quem esteve presente foi a orientação matemática, por meio da proporção.
Até.

1 curtida