Mudar cor do Botão....
É 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
Curtidas 0
Respostas
William Siqueira
06/10/2009
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); } }
GOSTEI 0
Daniel Benetti
06/10/2009
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]
GOSTEI 0
Ronie Brunhara
06/10/2009
[quote="jesuino"]Oi,
Usa o setBackground. Um exemplo(liga não, sou fã de JavaSwing :P):
SE eu quisesse utilizar um terceira cor como ficaria a FORMULA de C1, C2 e C3
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); } }
GOSTEI 0
Marcelo Senaga
06/10/2009
Basta comparar a cor e atribuir a seguinte:
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.
if(btn.getBackground() == C1) { btn.setBackground(C2); } else if(btn.getBackground() == C2) { btn.setBackground(C3); } else { btn.setBackground(C1); }
GOSTEI 0
Rodrigo Brunhara
06/10/2009
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
GOSTEI 0
Ronie Brunhara
06/10/2009
[quote="ms27817"]Basta comparar a cor e atribuir a seguinte:
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!
if(btn.getBackground() == C1) { btn.setBackground(C2); } else if(btn.getBackground() == C2) { btn.setBackground(C3); } else { btn.setBackground(C1); }
GOSTEI 0
Marcelo Senaga
06/10/2009
Então, dúvidas somente pelo fórum. Sem MP ou email
GOSTEI 0
Lairy Caetano
06/10/2009
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.
GOSTEI 0
Ricardo Staroski
06/10/2009
Para que a cor de fundo fique visível, seu JButton precisa estar opaco.
Depois que você o instanciou, faça um
Depois disso, você vai perceber a mudança de cor com o
meuBotao.setOpaque(true);
meuBotao.setBackground(instanciaDaCorDesejada);
GOSTEI 0
Wellingtpm
06/10/2009
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
GOSTEI 0