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%.
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%.
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é.