[RESOLVIDO] Como alterar a cor da Barra de progresso JProgressBar

Boa tarde pessoal, tudo bem com vocês?

Venho por meio deste pedir auxílio para alterar a cor da barra de progresso JProgressBar. Ele está com uma cor laranja. Eu sei que esta utilizando esta cor por causa do LookAndFeel. Eu quero continuar usando LookAndFeel mas quero alterar esta cor laranja da barra de progressão.
Já revirei os tópicos do GUJ e não encontrei o que eu procuro, pois as coisas que eu tento aplicar não dão certo.

Aqui vai um trecho do código

static void CarregarBarra(JProgressBar jBProgress2) {

	try {
		UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
	} catch (Exception e) {
		// erro
	}
	

	jBProgress = new JProgressBar();
	jBProgress.setBounds(800, 600, 50, 50);
	jBProgress.setMinimum(0);
	jBProgress.setMaximum(100);
	jBProgress.setStringPainted(true);
	jBProgress.setBackground(new java.awt.Color(0, 100, 0));
	jBProgress.setForeground(new java.awt.Color(0, 100, 0));
	jBProgress.setIndeterminate(false);
	jBProgress.setVisible(true);
	jBarP.add(jBProgress);
	
	TelaCarregamento();
	
}

Desde já agradeço.
Obrigado

1 curtida

Já tentou:

UIManager.put("ProgressBar.background", Color.ORANGE);
UIManager.put("ProgressBar.foreground", Color.BLUE);
UIManager.put("ProgressBar.selectionBackground", Color.RED);
UIManager.put("ProgressBar.selectionForeground", Color.GREEN);

?

Sim.

Em um de meus projetos, eu tive que alterar a cor do UI assim:

UIManager.put("nimbusOrange", new Color(0, 204, 0));

Coloquei esse código no construtor da classe, antes do método initComponents(). Nesse caso, estou estou alterando a cor padrão (no meu L&F) que é laranja (nimbusOrange) para verde.

Obs.: não encontrei uma opção mais ‘elegante’ de resolver essa questão.

Fonte: Igor Kromin - Changing Java Swing Nimbus L&F Default Colors - aqui explica o bug.

1 curtida

kkkkkkkkkkkkkkkkkkk Mentira cara… seu código funcionou no meu. Dá só uma olhada… Só adicionei a linha de comando.

image

Muitíssimo obrigado.

Que a força esteja com você!

Revivendo o tópico porque a solução aqui não me atendia completamente.

Tive o mesmo problema, porém no meu caso eu precisava ter cores diferentes para vários progressbar.
Procurando na documentação do java, eu resolvi meu problema da seguinte maneira: adicionei a linha abaixo no construtor do frame antes de chamar o método padrão initComponets(). Assim a tela em execução ficaram com os estilos e cores iguais ao modo de desenvolvimento sem sofrer as alteração de estilo do LookAndFeels.

UIManager.setLookAndFeel(“javax.swing.plaf.metal.MetalLookAndFeel”);

Ps: a linha acima precisa estar dentro de um bloco try - catch