Mudar cor do Botão....

06/10/2009

0

É possivel fazer o botão mudar de cor? Tipo ele está na cor verde e se ocorrer determinado evento fazer o botão mudar de cor, se for possivel como o fazer?
Lima_will

Lima_will

Responder

Posts

07/10/2009

William Siqueira

Oi, Usa o setBackground. Um exemplo(liga não, sou fã de JavaSwing :P):
package testeSwing;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class MudaCorBotao extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private JButton btn;

	private final Color C1 = Color.YELLOW, C2 = Color.GREEN;

	public MudaCorBotao() {
		super("Mudar cor do botão");
		setSize(300, 300);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setLayout(null);
		

		add(btn = new JButton("Mudar Cor"));
		btn.setBackground(C1);
		btn.setBounds(5, 5, 100, 25);

		btn.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				//Se for a cor um, então mudo para a cor 2...
				btn.setBackground(btn.getBackground() == C1 ? C2 : C1);
			}
		});
		
		
	}

	public static void main(String[] args) {
		new MudaCorBotao().setVisible(true);
	}

}

Responder

06/08/2010

Daniel Benetti

Olá, sei que o post já tem um ano, mas acabo de ver que estou com um problema relativo a exatamente esse assunto, estou desenvolvendo uma aplicação para Win XP e até hoje estava usando o tema clássico do Windows (aquele com as barras e janelas cinza, era default no win98), onde o botão do meu programa realmente ficava da cor que eu queria, mas hoje a aplicação foi testada em um outro computador com XP e com o tema do próprio XP (aquele mais colorido), o q acontece é que apenas as bordas do botão mudam de cor, e não o botão todo, abaixo a imagem dos dois casos. O codigo que usei foi exatamente esse que vc postou para testar.... Alguem pode ajudar? Grato. [url=http://uploaddeimagens.com.br/imagem/index/boto_correto.gif][img]http://uploaddeimagens.com.br/imagem/ver/boto_correto.gif[/img][/url] [url=http://uploaddeimagens.com.br/imagem/index/boto_errado.gif][img]http://uploaddeimagens.com.br/imagem/ver/boto_errado.gif[/img][/url]
Responder

17/03/2013

Ronie Brunhara

[quote="jesuino"]Oi, Usa o setBackground. Um exemplo(liga não, sou fã de JavaSwing :P):
package testeSwing;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class MudaCorBotao extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private JButton btn;

	private final Color C1 = Color.YELLOW, C2 = Color.GREEN;

	public MudaCorBotao() {
		super("Mudar cor do botão");
		setSize(300, 300);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setLayout(null);
		

		add(btn = new JButton("Mudar Cor"));
		btn.setBackground(C1);
		btn.setBounds(5, 5, 100, 25);

		btn.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				//Se for a cor um, então mudo para a cor 2...
				btn.setBackground(btn.getBackground() == C1 ? C2 : C1);
			}
		});
		
		
	}

	public static void main(String[] args) {
		new MudaCorBotao().setVisible(true);
	}

}

SE eu quisesse utilizar um terceira cor como ficaria a FORMULA de C1, C2 e C3
Responder

17/03/2013

Marcelo Senaga

Basta comparar a cor e atribuir a seguinte:
if(btn.getBackground() == C1) {
   btn.setBackground(C2);
} else if(btn.getBackground() == C2) {
   btn.setBackground(C3);
} else {
   btn.setBackground(C1);
}
Você poderia também substituir esses if´s usando um Map, onde a chave seria a cor atual e o valor seria a cor seguinte.
Responder

17/03/2013

Rodrigo Brunhara

Ai como eu faria...pegar por exemplo em uma tela minha tenho o valor de TFx,TFy para gerar a matriz, quando eu clicar em gerar matriz o valor de TFx,TFy vai gerar a matriz de botoes que to fazendo na outra tela!! como faço issso, ouseja pegar aquele valor jogar no "for" e e assim faz a a matriz de botoes ..especificada pelo usuario tem como observa esse codigo para mim : é o meu ai ver tem como me ajudar http://javafree.uol.com.br/topic-889560-Sabe-como-pegar-o-valor-de-TxtField-de-Jframe-e-madar-o-valor-x-para-preencher-a-matriz.html
Responder

17/03/2013

Ronie Brunhara

[quote="ms27817"]Basta comparar a cor e atribuir a seguinte:
if(btn.getBackground() == C1) {
   btn.setBackground(C2);
} else if(btn.getBackground() == C2) {
   btn.setBackground(C3);
} else {
   btn.setBackground(C1);
}
Você poderia também substituir esses if´s usando um Map, onde a chave seria a cor atual e o valor seria a cor seguinte.
DEU CERTO OBRIGADO NOVAMENTE, se puder passar seu email para qualquer outra duvida agradeço!
Responder

17/03/2013

Marcelo Senaga

Então, dúvidas somente pelo fórum. Sem MP ou email
Responder

26/02/2015

Lairy Caetano

estou com o mesmo problema do criador do tópico, quando altero pelo NetBeans o setBackground do botão altera somente o contorno o preechimento do botão não muda a cor.
Responder

26/02/2015

Ricardo Staroski

Para que a cor de fundo fique visível, seu JButton precisa estar opaco. Depois que você o instanciou, faça um
meuBotao.setOpaque(true);
Depois disso, você vai perceber a mudança de cor com o
meuBotao.setBackground(instanciaDaCorDesejada);
Responder

26/02/2015

Wellingtpm

Olá Lima_will, que tal criar um botão "personalizado"? ao invés de criar um JButton propriamente dito, crie um JLabel e adicione à ele um Evento de ação ao clicar e finalmente escolha um ícone para seu botão (ícones com fundo transparentes são ideais) e set o ícone do JLabel e pronto! forte abraço
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar